京東線上程式設計-相似字串
阿新 • • 發佈:2018-12-09
題目描述:
對於僅由小寫字母組成得字串A和B,如果,分別存在一個小寫字母a到z的排列,使得A中所有字母a替換為排列得第一個字母,所有字母b替換為排列得第二個字母......所有z替換為排列得最後一個字母之後,A和B完全相同,那麼稱字串A和B相似,如abcc和xyaa。現在給定僅由小寫字母組成且長度不超過10^5得字串S和T,求S中有多少字串與T相似?
輸入:
第一行和第二行分別輸入字串S和T。
輸出:
輸出字串S中與T相似得字串數目?
樣例輸入:
ababcb
xyx
樣例輸出:
3
解釋:
S中與T中相似得子串分別是aba,bab,bcb,總共3個。
程式碼:
def solve(S, T): if S==None or T==None: #當時忘了這種情況,通過率50% return 0 ns=len(S) nt=len(T) if ns<nt: return 0 m=0 for i in range(ns-nt+1): dic={} for j in range(nt): if T[j] not in dic: dic[T[j]]=S[i+j] else: if dic[T[j]]!=S[i+j]: break if j==nt-1 and dic[T[j]]==S[i+j]: m+=1 return m #******************************結束寫程式碼****************************** try: _S = input() except: _S = None try: _T = input() except: _T = None res = solve(_S, _T) print(str(res) + "\n")