首页 > 试题广场 >

单词倒排

[编程题]单词倒排
  • 热度指数:391422 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
\hspace{15pt}对于给定的若干个单词组成的句子,每个单词均由大小写字母构成,单词间使用非字母字符分隔。输出以单词为单位逆序排放的结果,即仅逆序单词间的相对顺序,不改变单词内部的字母顺序。
\hspace{15pt}特别地,在输出结果中,去除原有的分隔符,转而使用单个空格间隔单词。

输入描述:
\hspace{15pt}在一行上输入若干个字符串,每个字符串长度为 1 \leqq {\rm length}(s) \leqq 20 ,仅由大小写字母构成,代表一个单词。单词间还夹杂了一定数量的非字母字符(但保证是可见字符),代表分隔符。

\hspace{15pt}除此之外,保证总字符长度不超过 10^4


输出描述:
\hspace{15pt}在一行上输出一个句子,代表以单词为单位逆序排放的结果。单词间使用单个空格分隔。
示例1

输入

Nowcoder Hello

输出

Hello Nowcoder
示例2

输入

$bo*y gi!r#l

输出

l r gi y bo
头像 牛客484960258号
发表于 2021-11-23 01:14:13
a = input() for i in a: if not i.isalpha(): a = a.replace(i,' ') b = a.split() print(*b[::-1])
头像 牛客925409099号
发表于 2021-07-28 09:17:38
C语言编写,这应该是比较简单的,使用了scanf函数的读入指定字符集的功能,只读入大小写字母,遇到非字母的就保存并继续读取,直到读到\n结束,最后倒序输出。 #include <stdio.h> #include <stdlib.h> int main(){ cha 展开全文
头像 派仔
发表于 2020-08-11 15:55:17
正则表达式轻松解决 import java.util.*; public class Main { public Main() { } public String reverse(String str) { // 匹配非字母的字符进行分割 展开全文
头像 要努力学习吖
发表于 2020-03-01 10:40:18
import re while True: try: data = input() sp_data = re.split('[^a-zA-Z]+',data) # 刚开始提交后会报90% 格式错误 # 因为可能存在开头结尾是非字 展开全文
头像 烦恼的磨洋工匠人在吐槽
发表于 2021-09-29 23:04:29
var line = readline(); var arr = line.split(/[^A-Za-z]+/).reverse().join(' ') console.log(arr); 通过正则表达式进行分割,生成数组后直接reverse,再join空格成一个字符串输出。 正则解析:^ 在[ 展开全文
头像 Rimu男帝
发表于 2021-12-28 14:27:31
判断是不是字母: Character.isLetter(ch[i]) import java.util.regex.*; import java.util.*; public class Main { public static void main(String[] args) { 展开全文
头像 呆喵挠琴
发表于 2021-10-29 11:17:04
题目的主要信息: 对字符串中的所有单词进行倒排。 非构成单词的字符均视为单词间隔符; 倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符; 方法一: 逐个字符输入,用string变量word记录每一个单词,ans保存输出的结果。首先判断 展开全文
头像 罅隙·
发表于 2022-01-26 16:55:16
解题思路: 整体思想是双指针法,因此定义一对快慢指针p1,p2. 首先寻找一个单词的末尾,因此当s[p1]不是字母时p1就要--,循环终止时只要p1将指向一个单词的末尾(还有单词的话),此时将用p2记录下这个单词的结尾。 继续寻找单词的开头,因此当s[p1]为字母的时候就让p1--,最终p1+1指 展开全文
头像 代码界的小白
发表于 2021-12-04 11:37:01
题目主要信息 1、对字符串单词进行倒排 2、要求 构成单词的字符只有26个大写或小写英文字母; 非构成单词的字符均视为单词间隔符; 要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符; 每个单词最长20个字母; ##方法一:暴力 具 展开全文
头像 岳来
发表于 2021-11-02 11:07:44
while True: try: a=input().strip() for i in range(len(a)): if not a[i].isalpha(): a=a.replace(a[i], ' 展开全文