所以问题是,如果一个句子中给定的单词以同一个字符开头和结尾,我会删除这个字符,并继续这样做,直到它们不再相同或长度小于3
示例:aabaa->;aba->;b
这不是问题所在,所以现在我应该用原始字符串中的“b”替换单词“aabaa”
我唯一的问题是这个句子没有空格。例如:
信任,就是一切-&燃气轮机;罗斯,是,一切。
还要注意的是(. , ! ? ; :)
等字符将被忽略,但必须在最终输出中出现
到目前为止,我已经写了这篇文章,但它并不满足上面的例子:
s1 = str(input())
sentence = s1.split()
news = []
ignorabelCharacters = ['.',',','!','?',';',':']
helpList = []
for i in range(len(s1)):
if s1[i] in ignorabelCharacters:
helpList.append([s1[i],i])
for i in sentence:
i = str(i)
j = 0
while j < len(i):
if i[j] in ignorabelCharacters:
i = i.replace(i[j],' ').strip()
j+=1
else:j+=1
news.append(i)
s2 =' '.join(news)
newSentence = s2.split()
def checkAgain(newSentence):
newNewSentance = []
count = []
x=0
for i in newSentence:
j = len(i)
while j > 2:
if i[0].lower() == i[-1] or i[0].upper() == i[-1]:
i = i[1:-1]
j-=2
x+=2
else:
break
count.append(x)
newNewSentance.append(i)
x=0
return [newNewSentance,count]
newNewSentence = checkAgain(newSentence)[0]
count = checkAgain(newSentence)[1]
def finalProcessing(newNewSentence,sentence,newSentence):
finalSentence = []
for i in range(len(sentence)):
if len(newNewSentence[i]) == len(sentence[i]):
finalSentence.append(newNewSentence[i])
else:
x = len(sentence[i]) - len(newSentence[i])
if x ==0:
finalSentence.append(newNewSentence[i])
else:
value = newNewSentence[i] + sentence[i][-x:]
finalSentence.append(value)
return finalSentence
finalSentence = finalProcessing(newNewSentence,sentence,newSentence)
def finalPrint(finalSentece):
for i in range(len(finalSentece)):
if i == len(finalSentece) -1:
print(finalSentece[i],end='')
else:
print(finalSentece[i],end= ' ')
finalPrint(finalSentence)
这种方法与你的不同,但我会这样做
然后
collapseString('aabaa')
->;'b',和collapseString('Trust,is,all.' )
->;'罗斯,是的,是的相关问题 更多 >
编程相关推荐