Hướng dẫn how do you overlap two strings in python? - làm thế nào để bạn chồng lên nhau hai chuỗi trong python?

Thuật toán Knuth-Morris-Pratt là một phương pháp tốt để tìm một chuỗi bên trong một chuỗi khác (vì tôi đã thấy DNA, tôi đoán bạn muốn điều này để mở rộng lên hàng tỷ?).

# Knuth-Morris-Pratt string matching
# David Eppstein, UC Irvine, 1 Mar 2002

from __future__ import generators

def KnuthMorrisPratt(text, pattern):

    '''Yields all starting positions of copies of the pattern in the text.
Calling conventions are similar to string.find, but its arguments can be
lists or iterators, not just strings, it returns all matches, not just
the first one, and it does not need the whole text in memory at once.
Whenever it yields, it will have read the text exactly up to and including
the match that caused the yield.'''

    # allow indexing into pattern and protect against change during yield
    pattern = list(pattern)

    # build table of shift amounts
    shifts = [1] * (len(pattern) + 1)
    shift = 1
    for pos in range(len(pattern)):
        while shift <= pos and pattern[pos] != pattern[pos-shift]:
            shift += shifts[pos-shift]
        shifts[pos+1] = shift

    # do the actual search
    startPos = 0
    matchLen = 0
    for c in text:
        while matchLen == len(pattern) or \
              matchLen >= 0 and pattern[matchLen] != c:
            startPos += shifts[matchLen]
            matchLen -= shifts[matchLen]
        matchLen += 1
        if matchLen == len(pattern):
            yield startPos

Liên kết nơi tôi có mã KMP Python (và tích hợp, sẽ nhanh hơn cho các vấn đề nhỏ vì hằng số thời gian chạy).

Để có hiệu suất cạnh chảy máu, hãy sử dụng bảng tiền tố và băm các cửa sổ của chuỗi của bạn dưới dạng số nguyên cơ sở 4 (trong sinh học, bạn gọi chúng là K-MERS hoặc Oligos). ; )

Chúc may mắn!

Chỉnh sửa: Ngoài ra còn có một thủ thuật hay, bạn sắp xếp danh sách chứa mọi tiền tố (tổng n) trong chuỗi đầu tiên và mỗi tiền tố (tổng n) trong chuỗi thứ hai. Nếu họ chia sẻ phần tiếp theo chung lớn nhất, thì chúng phải liền kề trong danh sách được sắp xếp, vì vậy hãy tìm phần tử từ chuỗi khác gần nhất trong danh sách được sắp xếp, và sau đó lấy tiền tố dài nhất hoàn toàn. :) There's also a nice trick where you sort a list containing every prefix (n total) in the first string and every prefix (n total) in the second string. If they share the largest common subsequence, then they must be adjacent in the sorted list, so find the element from the other string that is closest in the sorted list, and then take the longest prefix that matches completely. : )


Trong bài viết này, chúng ta sẽ học cách giao nhau hai chuỗi theo những cách khác nhau.

Thực hiện theo các bước dưới đây để giải quyết vấn đề.

  • Khởi tạo hai chuỗi và một chuỗi trống.
  • Lặp lại trong chuỗi đầu tiên và thêm ký tự hiện tại vào chuỗi mới nếu nó trình bày trong chuỗi thứ hai và không có trong chuỗi mới rồi.
  • In kết quả.

Thí dụ

& nbsp; bản demo trực tiếp

# initializing the string
string_1 = 'tutorialspoint'
string_2 = 'tut'

result = ''

# finding the common chars from both strings
for char in string_1:
   if char in string_2 and not char in result:
      result += char

# printing the result
print(result)

Nếu bạn chạy mã trên, thì bạn sẽ nhận được kết quả sau.

Đầu ra

tu

Chúng tôi sẽ sử dụng bộ để giao nhau hai chuỗi. Thực hiện theo các bước dưới đây.

  • Chuyển đổi hai chuỗi thành bộ.
  • Giao nhau hai bộ bằng phương pháp giao nhau.
  • Chuyển đổi kết quả thành chuỗi bằng phương thức tham gia.
  • In kết quả.

Thí dụ

& nbsp; bản demo trực tiếp

# initializing the string
string_1 = 'tutorialspoint'
string_2 = 'tut'

# intersection
result = set(string_1).intersection(string_2)

# converting to string
result_str = ''.join(result)

# printing the result
print(result_str)

Nếu bạn chạy mã trên, thì bạn sẽ nhận được kết quả sau.

Đầu ra

ut

Chúng tôi sẽ sử dụng bộ để giao nhau hai chuỗi. Thực hiện theo các bước dưới đây.

Chuyển đổi hai chuỗi thành bộ.

Hướng dẫn how do you overlap two strings in python? - làm thế nào để bạn chồng lên nhau hai chuỗi trong python?

Giao nhau hai bộ bằng phương pháp giao nhau.

  • Chuyển đổi kết quả thành chuỗi bằng phương thức tham gia.
  • Sự kết luận
  • Nếu bạn có bất kỳ câu hỏi nào trong bài viết, hãy đề cập đến chúng trong phần bình luận.
  • Cập nhật vào ngày 13 tháng 11-2020 19:02:25
  • Câu hỏi và câu trả lời liên quan
  • Giao lộ của hai danh sách được liên kết trong Python
  • Giao điểm của hai mảng II trong Python
  • Chương trình Python để tìm giao điểm của hai danh sách?
  • Giao lộ của hai mảng javascript
  • Python Pandas - tạo thành giao điểm của hai đối tượng chỉ mục
  • Giao lộ của hai mảng trong C#
  • Giao lộ của hai mảng trong Java
  • Giao lộ của hai băm trong C#
  • Giao điểm của hai mảng trong C ++
  • Giao lộ của hai danh sách được liên kết trong C ++
  • Python - Giao lộ của nhiều danh sách

Chuyển đổi tập hợp từ các từ trong S0List và S1List, sau đó giao với chúng để có được các từ chung và trả về số lượng kết quả giao lộ ..

Làm thế nào để bạn tìm thấy sự khác biệt giữa hai chuỗi trong Python?

Làm thế nào để có được sự khác biệt giữa hai chuỗi trong Python.

  • String1 = "ABC".
  • String2 = "CDEF".
  • Chuyển đổi tập hợp từ các từ trong S0List và S1List, sau đó giao với chúng để có được các từ chung và trả về số lượng kết quả giao lộ ..

    Làm thế nào để bạn tìm thấy sự khác biệt giữa hai chuỗi trong Python?

    Làm thế nào để có được sự khác biệt giữa hai chuỗi trong Python.

    String1 = "ABC".

    String2 = "CDEF".

    first_set = set (String1). Naive Method
    Create an empty string and check for new occurrence of character common to both string and appending it. Hence computing the new intersection string. This can be achieved by loops and if/else statements.

    test_str1 =

    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    0

    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    1=
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    3

    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    4=
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    6

    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    7
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    8
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    9
    tu
    
    0

    tu
    
    1
    tu
    
    2
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    8
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    9
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    1
    tu
    
    6
    tu
    
    7
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    8
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    9
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    # intersection
    result = set(string_1).intersection(string_2)
    
    # converting to string
    result_str = ''.join(result)
    
    # printing the result
    print(result_str)
    0

    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    # intersection
    result = set(string_1).intersection(string_2)
    
    # converting to string
    result_str = ''.join(result)
    
    # printing the result
    print(result_str)
    1
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    4
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    # intersection
    result = set(string_1).intersection(string_2)
    
    # converting to string
    result_str = ''.join(result)
    
    # printing the result
    print(result_str)
    3=
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    # intersection
    result = set(string_1).intersection(string_2)
    
    # converting to string
    result_str = ''.join(result)
    
    # printing the result
    print(result_str)
    5

    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    # intersection
    result = set(string_1).intersection(string_2)
    
    # converting to string
    result_str = ''.join(result)
    
    # printing the result
    print(result_str)
    6
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    # intersection
    result = set(string_1).intersection(string_2)
    
    # converting to string
    result_str = ''.join(result)
    
    # printing the result
    print(result_str)
    7
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    # intersection
    result = set(string_1).intersection(string_2)
    
    # converting to string
    result_str = ''.join(result)
    
    # printing the result
    print(result_str)
    8
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    # intersection
    result = set(string_1).intersection(string_2)
    
    # converting to string
    result_str = ''.join(result)
    
    # printing the result
    print(result_str)
    3
    ut
    
    0

    Đầu ra:

    String intersection is : eksfor
    

    & nbsp; Phương pháp #2: Sử dụng

    ut
    
    1
    Method #2 : Using
    ut
    
    1

    Đầu tiên, cả hai chuỗi được chuyển đổi thành các bộ bằng cách sử dụng

    ut
    
    2 và sau đó giao nhau được thực hiện bằng cách sử dụng
    ut
    
    3. Trả về bộ sắp xếp.

    test_str1 =

    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    0

    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    1=
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    3

    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    4=
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    6

    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    7
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    8
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    9
    tu
    
    0

    Đầu ra:

    String intersection is : {'e', 'f', 's', 'o', 'k', 'r'}
    

    & nbsp; Phương pháp #2: Sử dụng

    ut
    
    1 Using
    String intersection is : {'e', 'f', 's', 'o', 'k', 'r'}
    
    0

    Đầu tiên, cả hai chuỗi được chuyển đổi thành các bộ bằng cách sử dụng

    ut
    
    2 và sau đó giao nhau được thực hiện bằng cách sử dụng
    ut
    
    3. Trả về bộ sắp xếp.

    test_str1 =

    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    0

    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    1=
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    3

    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    4=
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    6

    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    7
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    8
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    9
    tu
    
    0

    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    7
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    8
    # initializing the string
    string_1 = 'tutorialspoint'
    string_2 = 'tut'
    
    result = ''
    
    # finding the common chars from both strings
    for char in string_1:
       if char in string_2 and not char in result:
          result += char
    
    # printing the result
    print(result)
    9
    tu
    
    0

    Đầu ra:

    String intersection is : eksfor
    

    Làm thế nào để bạn chồng chéo một chuỗi trong Python?

    Để giải quyết vấn đề này, chúng ta có thể sử dụng hàm find () trong Python. Nó trả về vị trí bắt đầu của lần xuất hiện đầu tiên của chuỗi con trong chuỗi đã cho, sau đó chúng tôi tăng vị trí này lên 1 và tiếp tục tìm kiếm từ vị trí đó cho đến khi kết thúc chuỗi.use find() function in Python. It returns the start position of the first occurrence of substring in the given string, then we increment this position by 1 and continue the search from that position till the end of the string.

    Làm thế nào để bạn in giao điểm của hai chuỗi trong Python?

    Thực hiện theo các bước dưới đây để giải quyết vấn đề.Khởi tạo hai chuỗi và một chuỗi trống.Lặp lại trong chuỗi đầu tiên và thêm ký tự hiện tại vào chuỗi mới nếu nó trình bày trong chuỗi thứ hai và không có trong chuỗi mới rồi.In kết quả.

    Làm thế nào để bạn tìm thấy những từ phổ biến trong hai chuỗi trong Python?

    Khoa học dữ liệu thực tế sử dụng Python..
    Chuyển đổi S0 và S1 thành chữ thường ..
    S0List: = một danh sách các từ trong S0 ..
    S1List: = một danh sách các từ trong S1 ..
    Chuyển đổi tập hợp từ các từ trong S0List và S1List, sau đó giao với chúng để có được các từ chung và trả về số lượng kết quả giao lộ ..

    Làm thế nào để bạn tìm thấy sự khác biệt giữa hai chuỗi trong Python?

    Làm thế nào để có được sự khác biệt giữa hai chuỗi trong Python..
    String1 = "ABC".
    String2 = "CDEF".
    first_set = set (String1).
    Second_set = set (String2).
    khác biệt = First_set.symmetric_difference (Second_set).
    print(difference).