首页 > 试题广场 >

单词倒排

[编程题]单词倒排
  • 热度指数:392719 时间限制: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
a = input()
a = list(a)#直接将a暴力转化为列表
b = ''
for i in a:
    if i.isalpha():
        b += i
    else:
        b += ' '
str = b.split()#将字符串分割为列表
str.reverse()#将列表逆序排列
print(' '.join(str))

发表于 2025-04-10 13:16:59 回复(0)
s = input()

import re

# 这道题用re包里的re.sub()可以很好地解决:
s_new = re.sub(r'[$*!#]', r' ', s)

s_res_list = list(s_new.split())[::-1]

print(" ".join(s_res_list))
发表于 2025-04-09 03:32:35 回复(0)
def rew():
    # 从用户那里接收输入的字符串
    s = input()
    # 初始化一个空字符串,用于存储正在构建的单词
    wd = ''
    # 初始化一个空列表,用于存储已经构建好的单词
    ws = []
    # 遍历输入的字符串 s 中的每个字符
    for char in s:
        # 检查当前字符是否为字母
        if char.isalpha():
            # 如果是字母,将其添加到 wd 中,用来构建单词
            wd += char
        else:
            # 如果不是字母,且 wd 不为空,说明已经构建好一个单词
            if wd:
                # 将已经构建好的单词添加到 ws 列表中
                ws.append(wd)
                # 清空 wd,准备构建下一个单词
                wd = ''
    # 处理最后一个可能的单词
    if wd:
        ws.append(wd)
    # 将存储在 ws 列表中的单词进行逆序操作
    c = ws[::-1]
    # 初始化一个空字符串,用于存储最终结果
    d = ''
    # 遍历逆序后的单词列表
    for i in c:
        # 将单词添加到 d 中,并添加一个空格分隔
        d += i + ' '
    # 去除结果字符串末尾多余的空格
    result = d.strip()
    # 打印最终结果
    print(result)


rew()


发表于 2025-01-14 11:29:23 回复(0)
a = input()
b = ''
for i in a:
    if i >= 'A' and i <= 'z':
        b += i
    else:
        b += ' '
str=b.split()
str.reverse()
for i in str:
    print(i,end=' ')

发表于 2024-12-24 11:23:27 回复(0)
import sys

input = sys.stdin.read().strip()

output=[]
for char in input:
    if 'a' <= char <= 'z'&nbs***bsp;'A' <= char <= 'Z':
        output.append(char)
    else:
        output.append(' ')

result = ''.join(output).split()[::-1]

for i in result:
    print(i,end=' ')

发表于 2024-09-19 10:05:03 回复(0)
import sys

s = input()

data = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"

a = ''
for i in range(len(s)):
    if s[i] in data:
        a = a + s[i]
    else:
        a = a + ' '

a = a.split()[::-1]

for i in range(len(a)):
    print(a[i],end=" ")
发表于 2024-07-28 01:57:33 回复(0)
# 第三十一题  单词的倒序输出(间隔变为空格) a = input()
b_list = []
c_lin_str = '' for i in a: if i.isupper() or i.islower():
        c_lin_str += i else: if c_lin_str != '':
            b_list.append(c_lin_str)
            c_lin_str = '' if a[-1].isupper() or a[-1].islower():
    b_list.append(c_lin_str)
c_list = [] for i_1 in range(len(b_list)-1,-1,-1):
    c_list.append(b_list[i_1])
last_str = ' '.join(c_list) print(last_str)
发表于 2024-06-08 14:15:10 回复(0)
b = ''.join([i if i.isalpha() else ' ' for i in input()]).split()[::-1]
print(' '.join(b))
先遍历每个元素判断是否是字母,把非字母的元素替换为空,然后组成新的字符串,在按照空分割,得到只有字母组成单词的列表,然后倒序在拼接成一个字符串
发表于 2024-06-05 22:25:57 回复(0)
s = input()
for i in s:
    if not i.isalnum():
        s = s.replace(i, ' ')
print(*(s.split()[::-1]))

发表于 2024-05-11 16:28:51 回复(0)
正则不是直接出来了吗
import re
s=input()
res=re.findall(r'[a-zA-Z]+',s)
print(' '.join(res[::-1]))

发表于 2024-05-11 00:16:55 回复(0)
"""

from numpy.core.defchararray import isalpha
1. 接受输入,处理分隔符为空格
2. 以空格分割为列表
3. 列表逆转
4. 输出
"""

s = input()
sn = ''
for letter in s:
    if not letter.isalpha():
        if len(sn)==0:
            continue
        if sn[-1] != ' ':
            sn += ' '
    else:
        sn += letter

sl = sn.split(' ')
sl.reverse()

for j in sl:
    print(j, end=' ')

发表于 2024-05-09 19:27:12 回复(0)
s = input()
for i in s:
    if not i.isalnum():
        s = s.replace(i, ' ')
l = s.split()
print(' '.join(l[::-1]))

编辑于 2024-04-15 16:24:58 回复(0)
s=input()
processed_s = ''.join(c if c.isalpha() else ' ' for c in s)
print(' '.join(processed_s.split()[::-1]))

编辑于 2024-03-05 21:26:09 回复(0)
inputStr = input()
inputStr = inputStr+' '
s = ''
allList = []
for i in inputStr:
    if i.isalpha():
        s += i
    else:
        allList.append(s)
        s = ''

print(' '.join(allList[::-1]))

发表于 2024-02-19 11:46:18 回复(0)
a = input().strip()
b, c = "", ""
for i in a:
    if i.isalpha():
        c += i
    else:
        b = c + " " + b
        c = ""
b = c + " " + b
print(b.strip())

编辑于 2023-12-15 20:46:42 回复(0)
A = list(input())
B = []
temp = ''
for i in range(len(A)):
   

    if 'A'<=A[i]<='Z' or 'a'<=A[i]<='z':
        temp += str(A[i])
        if (i == (len(A) -1) and temp != ''):
            B.append(temp)
    else:
        if temp != '':
            B.append(temp)
        if (i>=1 and A[i-1] != ' '):   #判断前一个不为空格时,再增加空格
            B.append(' ')

        temp = ''

strC = ''
length = len(B)
for j in range(length):
   
    strC += str(B[length-j-1])
 

print(strC)
发表于 2023-11-17 10:53:55 回复(0)
import re

string = input().strip()
a = re.sub("[^a-zA-Z]+"," ",string).split()[::-1]
print(" ".join(a))
发表于 2023-10-17 21:12:19 回复(0)
只能到百分之九十不过简单
str1 = input().split()
num = 0
for i in str1:
    num+=1
print(" ".join(str1[num::-1]))
发表于 2023-10-17 20:27:24 回复(0)