慚愧啊,今天寫了個查詢子串的python程式被bs了…
如果讓你寫乙個程式設計客棧程式檢查字串s2中是不是包含有s1。也許你會很直觀的寫下下面的**:
複製** **如下:
#d程式設計客棧etermine whether s1 is a substring of s2
def issubstring1(s1,s2):
tag = false
len1 = len(s1)
len2 = len(s2)
for i in range(0,len2):
if s2[i] == s1[0]:
for j in range(0,len1):
if s2[i]==s1[j]:
tag = true
return tag
可是這是python,我們可以利用字串自帶的find()方法,於是可以這樣:
複製** **如下:
def issubstring2(s1,s2):
tag = false
if s2.find(s1) != -1:
tag = true
return tag
悲情的事就在於此,原來python中的關鍵字"in」不僅可以用於列表、元祖等資料型別,還可以用於字串。所www.cppcns.com以,這裡只需要直接一行**搞定:
複製** **如下:
def issubstring3(s1,s2):
return s1 in s2
後知後覺了,慚愧;-)
類似的,假設要在字串中,查詢多個子串是否存在,並列印出這些串和首次出現的位置:
複製** **如ayaxlhcvrc下:
def findsubstrings(substrings,deststring):
res = map(lambda x:str([deststring.index(x),x]),filter(lambda x:x in ayaxlhcvrcdeststring,substrings))
if res:
return ', '.join(list(res))
;-) very cool~
update: 如果你不習慣最後面這種看起來很複雜的語法也沒關係,可以使用列表解析,更加簡潔:
複製** **如下:
def findsubstrings(substrings,deststring):
return ', '.join([str([deststring.index(x),x]) for x in substrings if x in deststring])
本文標題: python字串中查詢子串小技巧
本文位址:
字串 查詢子串
主要的思路就是,不斷的從母串 str1 中取出和子串長度相等的臨時子串 temp str,與子串 str2 進行比較。沒有找到子串,返回 1 成功找到子串,返回子串首字母在母串中的位置,該位置從 0 開始。include include char temp str 30 臨時子串 void read...
查詢 子字串查詢
子字串查詢 子字串查詢的常見方法 暴力破解 sunday和kmp。1 暴力查詢 暴力查詢就是用兩個指標i,j分別指向字串和子字串,如果指標指向的字元相等則兩指標右移 否則,指向字串的指標i回到本次匹配的下乙個位置,而指向匹配字串的指標j回到匹配字串的開頭。public int search stri...
Python 的字串類子串查詢函式
python 的字串類有個很好用的函式,可很方便的用於與查詢python字串型別物件子串相關的操作,具體的api如下 find s.find sub start end int return the lowest index in s where substring sub is found,suc...