题解 | #单词倒排#
单词倒排
https://www.nowcoder.com/practice/81544a4989df4109b33c2d65037c5836
#思路直接定位每个单词的首位和末尾,通过判断前后字符是否符合条件 l="["+input()+"]"#确保输入第一个和最后一个被检测到,前后加入两个特殊字符串 l1=[] #每个单词的首字母位置 l2=[] #每个单词的末字母位置 for i in range(len(l)-1): if ord(l[i].upper()) not in range(65,91) and ord(l[i+1].upper()) in range(65,91): l1.append(i+1) #判断该字符不为字母后一位是,即后一位为一个单词的字母,记录首字母位置 if ord(l[i].upper()) in range(65,91) and ord(l[i+1].upper()) not in range(65,91): l2.append(i) #判断该字符为字母后一位不是,即为末字母记录位置。由于遍历,即先确定首字母,后面必会确定末字母位置。 for i in range(1,len(l1)+1): print(l[l1[-i]:l2[-i]+1],end=" ") #逆序输出单词:l[逆序首字母位置:逆序末字母位置+1]