Hướng dẫn how do you check if a string has no repeated characters python? - làm thế nào để bạn kiểm tra xem một chuỗi không có ký tự lặp lại là python?

Bạn có thể sử dụng collections.Counter:

>>> from collections import Counter
>>> [i for i,j in Counter(a).items() if j>1]
['4', '8']

Hoặc bạn có thể sử dụng một chức năng tùy chỉnh:

>>> def finder(s):
...    seen,yields=set(),set()
...    for i in s:
...      if i in seen:
...         if i not in yields:
...            yield i
...            yields.add(i)
...         else :
...            yields.add(i)
...      else:
...          seen.add(i)
... 
>>> list(finder(a))
['4', '8']

Hoặc sử dụng phương thức str.count trong một thiết lập hiểu:

>>> set(i for i in a if a.count(i)>1)
set(['8', '4'])

Một điểm chuẩn trên tất cả các phương pháp, cho thấy 2 cách cuối cùng (chức năng tùy chỉnh và bộ toàn bộ đặt nhanh hơn nhiều so với Counter):

from timeit import timeit


s1="""
a = "12348546478"
[i for i,j in Counter(a).items() if j>1]

"""
s2="""
def finder(s):
    seen,yields=set(),set()
    for i in s:
      if i in seen:
         if i not in yields:
            yield i
            yields.add(i)
         else :
            yields.add(i)
      else:
          seen.add(i)

a = "12348546478"
list(finder(a))

"""

s3="""
a = "12348546478"
set(i for i in a if a.count(i)>1)
"""

print '1st: ' ,timeit(stmt=s1, number=100000,setup="from collections import Counter")
print '2nd : ',timeit(stmt=s2, number=100000)
print '3rd : ',timeit(stmt=s2, number=100000)

kết quả :

1st:  0.726881027222
2nd :  0.265578985214
3rd :  0.26243185997

Tôi cũng đã thử điều này cho chuỗi dài (

>>> def finder(s):
...    seen,yields=set(),set()
...    for i in s:
...      if i in seen:
...         if i not in yields:
...            yield i
...            yields.add(i)
...         else :
...            yields.add(i)
...      else:
...          seen.add(i)
... 
>>> list(finder(a))
['4', '8']
0) và vẫn có kết quả tương tự:

1st:  25.5780302721341
2nd :  11.8482989001177
3rd :  11.926538944245

Bất cứ cách nào, đề xuất của tôi là sử dụng sự hiểu biết tập hợp hơn là Pythonic:

set(i for i in a if a.count(i)>1)

Làm thế nào để bạn kiểm tra xem một chuỗi không chứa các ký tự đặc biệt Python?

Re.Match () để phát hiện một chuỗi có chứa các ký tự đặc biệt hoặc không trong Python. Đây là chức năng trong mô -đun Regex. Nó trả về một trận đấu khi tất cả các ký tự trong chuỗi được khớp với mẫu (ở đây trong mã của chúng tôi, nó là biểu thức chính quy) và không có gì nếu nó không được khớp.
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class Program14 {

Mayank
Map map = new HashMap();
for (int i = 0; i < s1.length(); i++) {
if (map.containsKey(s1.charAt(i)))
map.put(s1.charAt(i), map.get(s1.charAt(i)) + 1);
else
map.put(s1.charAt(i), 1);
}
Set keys = map.keySet();
for (Character ch : keys) {
if (map.get(ch) == 1)
System.out.print(ch + ” “);
}
}

// Đây là chương trình Java của tôi nhập java.util.hashmap; nhập java.util.map; nhập java.util.scanner; nhập java.util.set; Chương trình lớp công khai14 {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.print(“Enter the String : “);
String s1 = sc.nextLine();
foundUnique(s1);
}

static void Foundunique (Chuỗi S1) {Bản đồ MAP = new HashMap (); for (int i = 0; i

Làm thế nào để bạn kiểm tra xem một chuỗi không chứa các ký tự đặc biệt Python?

Re.Match () để phát hiện một chuỗi có chứa các ký tự đặc biệt hoặc không trong Python. Đây là chức năng trong mô -đun Regex. Nó trả về một trận đấu khi tất cả các ký tự trong chuỗi được khớp với mẫu (ở đây trong mã của chúng tôi, nó là biểu thức chính quy) và không có gì nếu nó không được khớp.

Xem thảo luận

  • Cải thiện bài viết
  • Lưu bài viết
  • Làm thế nào để bạn kiểm tra xem một chuỗi không chứa các ký tự đặc biệt Python?

    Re.Match () để phát hiện một chuỗi có chứa các ký tự đặc biệt hoặc không trong Python. Đây là chức năng trong mô -đun Regex. Nó trả về một trận đấu khi tất cả các ký tự trong chuỗi được khớp với mẫu (ở đây trong mã của chúng tôi, nó là biểu thức chính quy) và không có gì nếu nó không được khớp.

    Xem thảo luận

    Cải thiện bài viết

    Examples: 

    Lưu bài viếts = “abcd” 
    Output: True 
    “abcd” doesn’t contain any duplicates. Hence the output is True.

    Đọc s = “abbd” 
    Output: False 
    “abbd” contains duplicates. Hence the output is False.

    Bàn luận

    Để thực hiện một thuật toán để xác định xem một chuỗi có chứa tất cả các ký tự duy nhất không. & Nbsp;

    Implementation:

    Đầu vào: S = Hồi ABCD, & NBSP; đầu ra: true & nbsp; Do đó đầu ra là đúng.

    Đầu vào: S = Hồi ABBD và NBSP; đầu ra: FALSE & NBSP; Do đó đầu ra là sai.

    Một giải pháp là tạo một mảng các giá trị boolean, trong đó cờ ở chỉ mục tôi cho biết liệu ký tự I trong bảng chữ cái có chứa trong chuỗi hay không. Lần thứ hai bạn nhìn thấy nhân vật này, bạn có thể ngay lập tức trả về Sai. & NBSP;

    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    9
    >>> set(i for i in a if a.count(i)>1)
    set(['8', '4'])
    
    0
    >>> set(i for i in a if a.count(i)>1)
    set(['8', '4'])
    
    1

    1st:  25.5780302721341
    2nd :  11.8482989001177
    3rd :  11.926538944245
    
    8
    >>> set(i for i in a if a.count(i)>1)
    set(['8', '4'])
    
    4
    set(i for i in a if a.count(i)>1)
    
    0

    Phân tích độ phức tạp:

    Độ phức tạp về thời gian: O (n), trong đó n là độ dài của chuỗi.

    Không gian phụ trợ: O (26), trong tổng số có 26 chữ cái trong bảng chữ cái và không cần thêm không gian để nó là một hằng số.

    Phương pháp số 3: Sử dụng các phương thức Danh sách () và SET ()

    1st:  25.5780302721341
    2nd :  11.8482989001177
    3rd :  11.926538944245
    
    8
    >>> set(i for i in a if a.count(i)>1)
    set(['8', '4'])
    
    4 Counter8

    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    10

    1st:  25.5780302721341
    2nd :  11.8482989001177
    3rd :  11.926538944245
    
    8
    >>> set(i for i in a if a.count(i)>1)
    set(['8', '4'])
    
    4
    set(i for i in a if a.count(i)>1)
    
    0

    set(i for i in a if a.count(i)>1)
    
    1
    set(i for i in a if a.count(i)>1)
    
    2

    Phân tích độ phức tạp:

    • Độ phức tạp về thời gian: O (n), trong đó n là độ dài của chuỗi. O(N), where N is the length of the string.
    • Không gian phụ trợ: O (26), trong tổng số có 26 chữ cái trong bảng chữ cái và không cần thêm không gian để nó là một hằng số. O(1), no extra space required so it is a constant.

    Phương pháp số 3: Sử dụng các phương thức Danh sách () và SET ():

    • 1st:  25.5780302721341
      2nd :  11.8482989001177
      3rd :  11.926538944245
      
      8
      >>> set(i for i in a if a.count(i)>1)
      set(['8', '4'])
      
      4 Counter8Counter() function
    • Nếu các phím trong từ điển tần số (cung cấp số lượng các ký tự riêng biệt) bằng chiều dài của chuỗi thì in đúng

    Implementation:

    Python3

    set(i for i in a if a.count(i)>1)
    
    3
    set(i for i in a if a.count(i)>1)
    
    4
    set(i for i in a if a.count(i)>1)
    
    5 Counter

    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    1
    set(i for i in a if a.count(i)>1)
    
    8

    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    3collections.Counter0
    >>> set(i for i in a if a.count(i)>1)
    set(['8', '4'])
    
    4 collections.Counter2

    Các

    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    9
    >>> set(i for i in a if a.count(i)>1)
    set(['8', '4'])
    
    0
    1st:  25.5780302721341
    2nd :  11.8482989001177
    3rd :  11.926538944245
    
    4

    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    3str.count6
    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    8

    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    9
    >>> set(i for i in a if a.count(i)>1)
    set(['8', '4'])
    
    0
    >>> set(i for i in a if a.count(i)>1)
    set(['8', '4'])
    
    1

    1st:  25.5780302721341
    2nd :  11.8482989001177
    3rd :  11.926538944245
    
    8
    >>> set(i for i in a if a.count(i)>1)
    set(['8', '4'])
    
    4
    set(i for i in a if a.count(i)>1)
    
    0

    set(i for i in a if a.count(i)>1)
    
    1
    set(i for i in a if a.count(i)>1)
    
    2

    Phân tích độ phức tạp:

    • Độ phức tạp về thời gian: O (n), trong đó n là độ dài của chuỗi., where N is the length of the string.
    • Không gian phụ trợ: O (26), trong tổng số có 26 chữ cái trong bảng chữ cái và không cần thêm không gian để nó là một hằng số. O(26), in total there are 26 letters in alphabet and no extra space required so it is a constant.

    Phương pháp số 3: Sử dụng các phương thức Danh sách () và SET ()

    Python3

    1st:  25.5780302721341
    2nd :  11.8482989001177
    3rd :  11.926538944245
    
    8
    >>> set(i for i in a if a.count(i)>1)
    set(['8', '4'])
    
    4 Counter8

    Counter9

    >>> set(i for i in a if a.count(i)>1)
    set(['8', '4'])
    
    4
    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    01
    from timeit import timeit
    
    
    s1="""
    a = "12348546478"
    [i for i,j in Counter(a).items() if j>1]
    
    """
    s2="""
    def finder(s):
        seen,yields=set(),set()
        for i in s:
          if i in seen:
             if i not in yields:
                yield i
                yields.add(i)
             else :
                yields.add(i)
          else:
              seen.add(i)
    
    a = "12348546478"
    list(finder(a))
    
    """
    
    s3="""
    a = "12348546478"
    set(i for i in a if a.count(i)>1)
    """
    
    print '1st: ' ,timeit(stmt=s1, number=100000,setup="from collections import Counter")
    print '2nd : ',timeit(stmt=s2, number=100000)
    print '3rd : ',timeit(stmt=s2, number=100000)
    
    5
    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    03
    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    04

    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    05
    >>> set(i for i in a if a.count(i)>1)
    set(['8', '4'])
    
    4
    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    01
    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    08

    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    09

    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    10

    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    4
    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    12
    >>> set(i for i in a if a.count(i)>1)
    set(['8', '4'])
    
    4
    >>> set(i for i in a if a.count(i)>1)
    set(['8', '4'])
    
    4
    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    15

    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    3
    set(i for i in a if a.count(i)>1)
    
    1
    from timeit import timeit
    
    
    s1="""
    a = "12348546478"
    [i for i,j in Counter(a).items() if j>1]
    
    """
    s2="""
    def finder(s):
        seen,yields=set(),set()
        for i in s:
          if i in seen:
             if i not in yields:
                yield i
                yields.add(i)
             else :
                yields.add(i)
          else:
              seen.add(i)
    
    a = "12348546478"
    list(finder(a))
    
    """
    
    s3="""
    a = "12348546478"
    set(i for i in a if a.count(i)>1)
    """
    
    print '1st: ' ,timeit(stmt=s1, number=100000,setup="from collections import Counter")
    print '2nd : ',timeit(stmt=s2, number=100000)
    print '3rd : ',timeit(stmt=s2, number=100000)
    
    5
    1st:  25.5780302721341
    2nd :  11.8482989001177
    3rd :  11.926538944245
    
    4
    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    20

    str.count6

    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    8

    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    3
    set(i for i in a if a.count(i)>1)
    
    1
    from timeit import timeit
    
    
    s1="""
    a = "12348546478"
    [i for i,j in Counter(a).items() if j>1]
    
    """
    s2="""
    def finder(s):
        seen,yields=set(),set()
        for i in s:
          if i in seen:
             if i not in yields:
                yield i
                yields.add(i)
             else :
                yields.add(i)
          else:
              seen.add(i)
    
    a = "12348546478"
    list(finder(a))
    
    """
    
    s3="""
    a = "12348546478"
    set(i for i in a if a.count(i)>1)
    """
    
    print '1st: ' ,timeit(stmt=s1, number=100000,setup="from collections import Counter")
    print '2nd : ',timeit(stmt=s2, number=100000)
    print '3rd : ',timeit(stmt=s2, number=100000)
    
    5
    >>> set(i for i in a if a.count(i)>1)
    set(['8', '4'])
    
    1
    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    20

    Phương pháp số 4: Sử dụng cho vòng lặp và tư cách thành viên Opeartors

    Python3

    1st:  25.5780302721341
    2nd :  11.8482989001177
    3rd :  11.926538944245
    
    8
    >>> set(i for i in a if a.count(i)>1)
    set(['8', '4'])
    
    4 Counter8

    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    31
    >>> set(i for i in a if a.count(i)>1)
    set(['8', '4'])
    
    4
    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    33

    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    10

    Phương pháp số 4: Sử dụng cho vòng lặp và tư cách thành viên Opeartors

    from timeit import timeit
    
    
    s1="""
    a = "12348546478"
    [i for i,j in Counter(a).items() if j>1]
    
    """
    s2="""
    def finder(s):
        seen,yields=set(),set()
        for i in s:
          if i in seen:
             if i not in yields:
                yield i
                yields.add(i)
             else :
                yields.add(i)
          else:
              seen.add(i)
    
    a = "12348546478"
    list(finder(a))
    
    """
    
    s3="""
    a = "12348546478"
    set(i for i in a if a.count(i)>1)
    """
    
    print '1st: ' ,timeit(stmt=s1, number=100000,setup="from collections import Counter")
    print '2nd : ',timeit(stmt=s2, number=100000)
    print '3rd : ',timeit(stmt=s2, number=100000)
    
    1
    from timeit import timeit
    
    
    s1="""
    a = "12348546478"
    [i for i,j in Counter(a).items() if j>1]
    
    """
    s2="""
    def finder(s):
        seen,yields=set(),set()
        for i in s:
          if i in seen:
             if i not in yields:
                yield i
                yields.add(i)
             else :
                yields.add(i)
          else:
              seen.add(i)
    
    a = "12348546478"
    list(finder(a))
    
    """
    
    s3="""
    a = "12348546478"
    set(i for i in a if a.count(i)>1)
    """
    
    print '1st: ' ,timeit(stmt=s1, number=100000,setup="from collections import Counter")
    print '2nd : ',timeit(stmt=s2, number=100000)
    print '3rd : ',timeit(stmt=s2, number=100000)
    
    2
    from timeit import timeit
    
    
    s1="""
    a = "12348546478"
    [i for i,j in Counter(a).items() if j>1]
    
    """
    s2="""
    def finder(s):
        seen,yields=set(),set()
        for i in s:
          if i in seen:
             if i not in yields:
                yield i
                yields.add(i)
             else :
                yields.add(i)
          else:
              seen.add(i)
    
    a = "12348546478"
    list(finder(a))
    
    """
    
    s3="""
    a = "12348546478"
    set(i for i in a if a.count(i)>1)
    """
    
    print '1st: ' ,timeit(stmt=s1, number=100000,setup="from collections import Counter")
    print '2nd : ',timeit(stmt=s2, number=100000)
    print '3rd : ',timeit(stmt=s2, number=100000)
    
    3
    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    37

    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    4
    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    50
    >>> set(i for i in a if a.count(i)>1)
    set(['8', '4'])
    
    4
    >>> set(i for i in a if a.count(i)>1)
    set(['8', '4'])
    
    4
    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    53

    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    3
    set(i for i in a if a.count(i)>1)
    
    1
    from timeit import timeit
    
    
    s1="""
    a = "12348546478"
    [i for i,j in Counter(a).items() if j>1]
    
    """
    s2="""
    def finder(s):
        seen,yields=set(),set()
        for i in s:
          if i in seen:
             if i not in yields:
                yield i
                yields.add(i)
             else :
                yields.add(i)
          else:
              seen.add(i)
    
    a = "12348546478"
    list(finder(a))
    
    """
    
    s3="""
    a = "12348546478"
    set(i for i in a if a.count(i)>1)
    """
    
    print '1st: ' ,timeit(stmt=s1, number=100000,setup="from collections import Counter")
    print '2nd : ',timeit(stmt=s2, number=100000)
    print '3rd : ',timeit(stmt=s2, number=100000)
    
    5
    1st:  25.5780302721341
    2nd :  11.8482989001177
    3rd :  11.926538944245
    
    4
    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    20

    str.count6

    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    8

    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    3
    set(i for i in a if a.count(i)>1)
    
    1
    from timeit import timeit
    
    
    s1="""
    a = "12348546478"
    [i for i,j in Counter(a).items() if j>1]
    
    """
    s2="""
    def finder(s):
        seen,yields=set(),set()
        for i in s:
          if i in seen:
             if i not in yields:
                yield i
                yields.add(i)
             else :
                yields.add(i)
          else:
              seen.add(i)
    
    a = "12348546478"
    list(finder(a))
    
    """
    
    s3="""
    a = "12348546478"
    set(i for i in a if a.count(i)>1)
    """
    
    print '1st: ' ,timeit(stmt=s1, number=100000,setup="from collections import Counter")
    print '2nd : ',timeit(stmt=s2, number=100000)
    print '3rd : ',timeit(stmt=s2, number=100000)
    
    5
    >>> set(i for i in a if a.count(i)>1)
    set(['8', '4'])
    
    1
    >>> def finder(s):
    ...    seen,yields=set(),set()
    ...    for i in s:
    ...      if i in seen:
    ...         if i not in yields:
    ...            yield i
    ...            yields.add(i)
    ...         else :
    ...            yields.add(i)
    ...      else:
    ...          seen.add(i)
    ... 
    >>> list(finder(a))
    ['4', '8']
    
    20


    Làm thế nào để bạn tìm thấy các ký tự không lặp lại trong một chuỗi trong Python?

    Algorithm..
    Bước 1:- Lưu trữ chuỗi trong một chuỗi khác, hãy nói chuỗi ..
    Bước 2:- Hãy cho phép nó là Prepinsta .. ..
    Bước 3:- Bắt đầu lặp lại qua chuỗi ..
    Bước 4:- Khởi tạo biến số ..
    Bước 5:- Một lần nữa bắt đầu lặp lại thông qua cùng một chuỗi ..
    Bước 6:- Biến số lượng tăng khi được tìm thấy trong chuỗi ..

    Làm thế nào để bạn kiểm tra các ký tự lặp lại trong một chuỗi trong Python?

    Chúng ta có thể sử dụng các phương pháp python khác nhau để đạt được mục tiêu của mình.Đầu tiên, chúng ta sẽ tìm thấy các ký tự trùng lặp của một chuỗi bằng phương thức đếm ...
    Khởi tạo một chuỗi ..
    Khởi tạo một danh sách trống ..
    Vòng lặp qua chuỗi.Kiểm tra xem tần số char lớn hơn một hoặc không sử dụng phương pháp đếm ..

    Làm thế nào để bạn kiểm tra các ký tự lặp lại trong một chuỗi?

    Một giải pháp hiệu quả là sử dụng băm để giải quyết điều này trong trung bình thời gian O (n).Tạo một hàm băm trống.Quét từng ký tự của chuỗi đầu vào và chèn các giá trị vào mỗi khóa trong băm.Khi bất kỳ ký tự nào xuất hiện nhiều hơn một lần, giá trị khóa băm được tăng thêm 1 và trả về ký tự.use Hashing to solve this in O(N) time on average. Create an empty hash. Scan each character of input string and insert values to each keys in the hash. When any character appears more than once, hash key value is increment by 1, and return the character.

    Làm thế nào để bạn kiểm tra xem một chuỗi không chứa các ký tự đặc biệt Python?

    Re.Match () để phát hiện một chuỗi có chứa các ký tự đặc biệt hoặc không trong Python.Đây là chức năng trong mô -đun Regex.Nó trả về một trận đấu khi tất cả các ký tự trong chuỗi được khớp với mẫu (ở đây trong mã của chúng tôi, nó là biểu thức chính quy) và không có gì nếu nó không được khớp. match() to detect if a string contains special characters or not in Python. This is function in RegEx module. It returns a match when all characters in the string are matched with the pattern(here in our code it is regular expression) and None if it's not matched.