计算python中两个字符串之间的公共字符

时间:2016-04-20 14:09:37

标签: python character

我有一个我一直在努力的代码,但它并没有输出我需要的代码。我不得不为python中的代码编写自己的算法来计算输入字符串中的字符。它就像针法中的haystack,但我不应该使用任何文本比较方法,比如count()和findall()。我希望我的代码逐个字符计算,并且不会计算重叠的字母。我正在寻找最长的常见子串。这是我的代码到目前为止,但它输出仍然是错误的。当我输入" aaaaa"在String1字段和" aa"在字符串2字段中,它输出1,但它应输出2,因为在" aaaaa"中有2" aa" s。没有重叠。

// This will compare your value to null
if ($(this).val() == null) {
    // If it is null, it will set it to 0
    $(this).val(0);
}

2 个答案:

答案 0 :(得分:1)

因此,你的代码的一个问题就是你计算字符出现的方式,如果你做“aaaa”和“aa”输出就像你说的那样是2但是在你当前的代码中它将是1而不管。这是修复。

import re
test1 = input("String1: ")
test2 = input("String2: ")

common = {}
if len(test1) < len(test2):
     for letter in test1:
         if letter in test2:
             common[letter] = len(re.findall(letter, test2))

else:
     for letter in test2:
         if letter in test1:
             common[letter] = len(re.findall(letter, test1))
for word, count in common.items():
    print("{0}\t{1}".format(word,count))

答案 1 :(得分:0)

str1=input()
str2=input()

cnt=0
if len(str1)<len(str2):
    for i in str1:
       if i in str2:
           cnt+=1
else:
    for i in str2:
        if i in str1:
            cnt+=1
print(cnt)