問題
若給兩組字串如:
s1 = 『public relations』
s2 = 『crap built on lies』
如果忽略大小寫與空格,s1可以通過打亂順序得到s2,則返回true,否則返回false
s1 = 'public relations'
s2 = 'crap built on lies'
import re
#變為小寫字母
s1 = s1.lower()
s2 = s2.lower()
#正規表示式,去除空格
s1 = re.sub(r"\s+", "", s1, flags=re.unicode) #\s 匹配任意的空白符; + 重複1次或多次
s2 = re.sub(r"\s+", "", s2, flags=re.unicode)
正規表示式參考 正規表示式
#方法一:使用sorted()函式
def anagram1(s1,s2):
s1 = s1.replace(' ','').lower()
s2 = s2.replace(' ','').lower()
return sorted(s1) == sorted(s2)
#方法二
def anagram2(s1,s2):
s1 = s1.replace(' ','').lower()
s2 = s2.replace(' ','').lower()
if len(s1) != len(s2):
return false
count = {}
# fill dictionary with first string
for letter in s1:
if letter in count:
count[letter] += 1
else:
count[letter] = 1
for letter in s2:
if letter in count:
count[letter] -= 1
else:
count[letter] = 1
for k in count:
if count[k] != 0:
return false
return true
判斷兩個字串是否相同
data segment mess1 db computer software mess2 db computer software data ends code segment assume ds data,cs code start mov ax,data mov ds,ax mov es,ax...
翻轉字串和比較兩個字串是否相同
奉獻兩個小題,練習繼續 題目描述 請實現乙個演算法,在不使用額外資料結構和儲存空間的情況下,翻轉乙個給定的字串 可以使用單個過程變數 給定乙個string inistring,請返回乙個string,為翻轉後的字串。保證字串的長度小於等於5000。測試樣例 this is nowcoder 返回 r...
翻轉字串和比較兩個字串是否相同
奉獻兩個小題,練習繼續 題目描述 請實現乙個演算法,在不使用額外資料結構和儲存空間的情況下,翻轉乙個給定的字串 可以使用單個過程變數 給定乙個string inistring,請返回乙個string,為翻轉後的字串。保證字串的長度小於等於5000。測試樣例 this is nowcoder 返回 r...