首页 > 试题广场 >

单词倒排

[编程题]单词倒排
  • 热度指数:365619 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

对字符串中的所有单词进行倒排。

说明:

1、构成单词的字符只有26个大写或小写英文字母;

2、非构成单词的字符均视为单词间隔符;

3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;

4、每个单词最长20个字母;

数据范围:字符串长度满足

输入描述:

输入一行,表示用来倒排的句子



输出描述:

输出句子的倒排结果

示例1

输入

I am a student

输出

student a am I
示例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% 格式错误 # 因为可能存在开头结尾是非字 展开全文
头像 牛客681575491号
发表于 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个字母; ##方法一:暴力 具 展开全文
头像 Bruno.Mars
发表于 2022-02-11 00:29:50
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String[] splitStr = scanner.nextLine().split("[^a-z 展开全文