题目描述:
输入单行英文句子,里面包含英文字母,空格以及,.? 三种标点符号,请将句子内每个单词进行倒序,并输出倒序后的语句
输入描述:
输入字符串S,S的长度1≤N≤100
输出描述:
输出逆序后的字符串
补充说明:
标点符号左右的空格≥0,单词间空格>0
收起
示例1
输入:
yM eman si boB.
输出:My name is Bob.
说明:示例2
输入:
woh era uoy ? I ma enif.
输出:how are you ? I am fine.
import sys
res_list = []
char_list = [".", ",", "?"]
line = input()
word_list = line.split(" ")
for word in word_list:
if "." in word or "," in word or "?" in word and len(word) > 1:
char1 = word[-1:]
char2 = word[0]
if char1 in char_list and char2 not in char_list:
res_list.append(word[:-1][::-1] + char1)
if char1 not in char_list and char2 in char_list:
res_list.append(char2 + word[1:][::-1])
if char1 in char_list and char2 in char_list:
res_list.append(char2 + word[1:-1][::-1] + char1)
if word in char_list:
res_list.append(word)
if word not in char_list and "." not in word and "," not in word and "?" not in word:
res_list.append(word[::-1])
print(" ".join(res_list))
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
String[] str1 = str.split(" ");
for(int i=0; i < str1.length; i++) {
String str2 = str1[i];
String str3 = "";//保存单词
String str4 = "";//保存标点
for(int j=0; j < str2.length(); j++) {
if(str2.charAt(str2.length() - 1 - j) != '.' &&
str2.charAt(str2.length() - 1 - j) != ',' &&
str2.charAt(str2.length() - 1 - j) != '?') {
str3 += str2.charAt(str2.length() - 1 - j);
} else {
str4 += str2.charAt(str2.length() - 1 - j);
}
}
str1[i] = str3 + str4;
}
for(int i=0; i < str1.length; i++) {
System.out.print(str1[i] + " ");
}
}
}