簡體   English   中英

在兩個不同字符串的同一位置匹配 substring?

[英]Matching substring in the same place on two different strings?

我一直在嘗試解決 Python 中的一個編碼問題。

這是問題定義:

給定 2 個字符串 a 和 b,返回它們包含相同長度 2 substring 的位置數。 所以 "xxcaazz" 和 "xxbaaz" 得到 3,因為 "xx"、"aa" 和 "az" 子字符串出現在兩個字符串中的相同位置。

string_match('xxcaazz', 'xxbaaz') → 3

string_match('abc', 'abc') → 2

string_match('abc', 'axc') → 0

這是我的代碼:

def string_match(a, b):
  count = 0
  for i in range(len(a)-1):
    for j in range(len(b)-1):
      if a[i:i+2] == b[j:j+2]:
        count += 1
  return count

上述代碼中的 output:

我無法弄清楚我的代碼有什么問題。

希望你能幫助我。 期待回復。

這應該可以完成工作,通過了所有測試用例。

def string_match(a, b):
    found = 0
    for i in range(min([len(a), len(b)])-1):
        if a[i] == b[i] and a[i+1] == b[i+1]:
            found += 1
    return found

print(string_match('iaxxai', 'aaxxaaxx'))

您不需要拆分字符串,您只需要檢查ii + 1處的字符是否相等。 如果您想檢查它的n長度,您可能需要一個內部循環。 它也適用於len(a) != len(b)

def string_match(a, b): shorter = min(len(a), len(b)) count = 0 for i in range(shorter-1): a_sub = a[i:i+2] b_sub = b[i:i+2] if a_sub == b_sub: count = count + 1 return count

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM