题目:
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-\u005a\u0061-\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范围 |