首页 > 试题广场 >

单词倒排

[编程题]单词倒排
  • 热度指数:381835 时间限制: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
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)
string = input()
reversed_string = ''
for alpha in string:
    if alpha.isalpha():
        reversed_string = reversed_string + alpha
    else:
        reversed_string = reversed_string + ' '
reversed_string = reversed_string.split()
print(' '.join(reversed_string[::-1]))

发表于 2023-09-17 14:39:39 回复(0)
import sys

for line in sys.stdin:
    a = line.split()
    b=[]
    sta=''
    for i in a:
        st=''
        for j in i:
            if 'A'<=j<='Z' or 'a'<=j<='z':
                st+=j
            else:
                st+=' '
        sta+=' '
        sta+=st
    b=list(sta.split(' '))
    print(' '.join(b[::-1]))
发表于 2023-08-29 09:31:00 回复(0)
s = input()

for i in range(len(s)):#非字母处理成空格
    if s[i].isalpha():
        pass
    else:
        s = s.replace(s[i], ' ')
s=s.strip()
for i in range(0,len(s)):#多个连续空格替换成1个空格
    if s[i]==' ' and s[i+1]==' ':
        s=s.replace(s[i+1],'')
l_s =s.split(' ')#去除首位空格
l_s = l_s[::-1]#单词顺序反转
resp = ' '.join(l_s)#单词用空格拼接
print(resp)
发表于 2023-07-30 16:36:28 回复(0)
正则,强行一行(不会其它算法
print(' '.join(re.findall('[a-zA-Z]+',input())[::-1]))


发表于 2023-07-25 17:39:16 回复(0)
正则表达式秒杀
import re
fd = re.findall('\w+',input())
while(fd): print(fd.pop(),end = " ")


发表于 2023-07-20 21:28:22 回复(0)