[英]Find matching characters in two strings with same and different positions
[英]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'))
您不需要拆分字符串,您只需要檢查i
和i + 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.