出现的第一个字母可以是大写或小写 (newPhrase)。 非字母字符 - 保持不变。
目前我想到的是:
def keepFirstLetter(phrase):
'''Returns a new string that contains only the first occurrence of a
letter from the original phrase.
letterSeenSoFar = ''
newPhrase = ''
if (letterSeenSoFar == '' or letterSeenSoFar[-1] != letterSeenSoFar):
letterSeenSoFar += c
for letter in letterSeenSoFar:
if letter.isalpha:
newPhrase += char
else:
newPhrase += letter
return newPhrase
请您参考如下方法:
您似乎走在正确的轨道上。如果您想提高效率,可以将看到的字母存储为一组。搜索一个集合是 O(1)。
def unique_first(s):
letters = set()
out = ''
for x in s:
if not x.isalpha():
out += x
continue
if not x.lower() in letters:
out += x
letters.add(x.lower())
return out
