2 回答

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊
此類問題應(yīng)首先正確解釋,然后使用筆和紙,嘗試設(shè)計(jì)一種算法來解決您的問題。然后,您可以對(duì)其進(jìn)行編碼,從而生成無錯(cuò)誤且功能齊全的代碼。這是您解決問題的代碼。
def fun(s):
words = s.split()
new_string = ""
vowels = ("a", "e", "i", "o", "u", "A", "E", "I", "O", "U")
for word in words:
new_word = ""
flag = False
for i in range(len(word)):
if word[i] in vowels and i>0:
new_word = word[i:] + word[:i] + "ay"
flag = True
break
if word[i] in vowels and i == 0:
new_word = word + "way"
break
if new_word:
new_string += " " + new_word
else:
new_string += " " + word
return new_string
測(cè)試用例:
>>> fun("this is a test")
' isthay isway away esttay'
>>> fun("bcd")
' bcd'
>>> fun("how are you today")
' owhay areway ouyay odaytay'

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊
這就是你的函數(shù)應(yīng)該是什么樣子
def pig_latin(s):
VOWELS = ("a", "e", "i", "o", "u", "A", "E", "I", "O", "U")
words = s.split()
result = []
for w in words:
if w[0] in VOWELS:
result.append(w + 'way')
else:
for idx, char in enumerate(w):
if char in VOWELS:
result.append(w[idx:] + w[:idx] + 'ay')
break
else:
continue
else:
result.append(w)
return ' '.join(result)
由于您想取出第一個(gè)元音之前的所有輔音,您需要遍歷每個(gè)單詞以檢查第一個(gè)元音的位置。
此外,在執(zhí)行 時(shí)s1.join(s2),您會(huì)忘記在單詞之間添加額外的空格。
添加回答
舉報(bào)