2017-11-11 11 views
0

2つの文字列がある場合、どのように文字列が一致しないインデックスを見つけることができますか? 'abcdefghijk'と偽のアルファベット 'abcdxyz'は、インデックス4でのマッチングが中止されることを知っていますが、どのように出力することができますか?特定のインデックスを見つける?

+0

たぶん、あなたは、ループ内でのfind()を使用し、それはあなたの文字列に一致doesntの時に破ることができますか? –

答えて

0

2番目の文字列内の文字は最初の文字列内の現在の文字と一致しないため、インデックスを見つけることenumerate()機能を使用する - slicedstringsのいくつかの簡単なcomparisonsを使用して

def matcher(str1, str2): 
    for idx, item in enumerate(str1): 
    if item != str2[idx]: 
     return idx 
    return -1 # if no differing letter in second string 

print(matcher('abcdefghijk', 'abcdxyz')) # 4 
0

を:

functionを作成してslicingstringsの最初のstringの最後に到達するまで維持して比較することができます。

def match(s1, s2): 
    for i in range(len(s1)+1): 
     if s1[:i] != s2[:i]: 
      return i - 1 
    return -1 

といくつかのテスト:

>>> match('abcdefghijk', 'abcdxyz') 
4 
>>> match('124', '123') 
2 
>>> match('123456', '123abc') 
3 
>>> match("abcdef", "abcdef") 
-1 
関連する問題