python 单词倒排

题目:

https://www.nowcoder.com/practice/81544a4989df4109b33c2d65037c5836?tpId=37&tqId=21254&rp=1&ru=%2Fta%2Fhuawei&qru=%2Fta%2Fhuawei%2Fquestion-ranking&tab=answerKey

代码:

 1 '''
 2 
 3 题目描述
 4 对字符串中的所有单词进行倒排。
 5 
 6 说明:
 7 1、构成单词的字符只有26个大写或小写英文字母;
 8 2、非构成单词的字符均视为单词间隔符;
 9 3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;
10 4、每个单词最长20个字母;
11 输入描述:
12 输入一行以空格来分隔的句子
13 
14 输出描述:
15 输出句子的逆序
16 
17 示例1
18 输入
19 I am a student
20 输出
21 student a am I
22 '''
23 import re
24 
25 n = input()
26 nNew = re.sub(u"([^u0041-u005au0061-u007a])",' ',n)
27 nNew = nNew.split()
28 nNew = nNew[::-1]
29 s= ''
30 for i in range(len(nNew)-1):
31     s += nNew[i]+' '
32 s += nNew[-1]
33 print(s)

其中涉及到了正则替换

正则表达式说明

函数 说明
sub(pattern,repl,string) 把字符串中的所有匹配表达式pattern中的地方替换成repl
[^**] 表示不匹配此字符集中的任何一个字符
u4e00-u9fa5 汉字的unicode范围
u0030-u0039 数字的unicode范围
u0041-u005a 大写字母unicode范围
u0061-u007a 小写字母unicode范围
uAC00-uD7AF 韩文的unicode范围
u3040-u31FF 日文的unicode范围

参考:cnblogs.com/brady-wang/p/12509676.html

原文地址:https://www.cnblogs.com/whycai/p/14736781.html