腾讯2018 算法岗在线编程题一
对于A和B两个字符串的字符串系数按照以下规则定义:
1. 对于每一个A的长度为k的不同子串,我们统计在B中的出现的次数
2. A和B的字符串系数就是所有出现次数之和
例如,A = “abab”,B=“ababab”,k=2
A有两个长度为2的不同子串“ab"和“ba”,在B中"ab"出现了3次,"ba"出现了2次,所以A和B的字符串系数为3+2=5。
现在给出两个字符串A,B和整数k,请你计算A和B的字符串系数。
输入描述
输入包括三行
第一行包括一个整数k(1<=k<=|A|)
第二行一个字符串A(1<=|A|<=100000)
第三行一个字符串B(1<=|B|<=100000)
其中|A|表示字符串A的长度。
输出描述
输出一个整数,表示A和B的字符串系数。
示例
输入
2
abab
ababab
输出
5
def getCount(str1,str2,num): if(len(str1)<num or len(str2)<num): return 0 lstr1 = set() count = 0 for i in range(len(str1)-num+1): lstr1.add(str1[i:i+num]) for i in range(len(str2)-num+1): if(str2[i:i+num] in lstr1): count += 1 return count while True: try: num = int(raw_input()) str1 = raw_input() str2 = raw_input() out = getCount(str1,str2,num) print(out) except Exception as e: break
浙公网安备 33010602011771号