题解 | #单词倒排#
单词倒排
https://www.nowcoder.com/practice/81544a4989df4109b33c2d65037c5836
import java.util.*;
public class Main {
public static void main(String[] args) {
//从控制台获取数据
Scanner in = new Scanner(System.in);
String s = in.nextLine();
//将非构成单词的字符改为单词间隔符
int length = s.length();
for (int i = 0; i < length; i++) {
String s1 = String.valueOf(s.charAt(i));
if (!s1.matches("^[A-Z]|[a-z]$")) {
s = replaceAtIndex(i, s, " ");
}
}
String[] s1 = s.split(" ");
//倒序输出字符
StringBuffer stringBuffer = new StringBuffer();
for (int i = 0; i < s1.length; i++) {
String s2 = s1[s1.length - 1 - i];
stringBuffer.append(s2 + " ");
}
System.out.println(stringBuffer);
}
private static String replaceAtIndex(int i, String oldStr, String newStr) {
return oldStr.substring(0, i) + newStr + oldStr.substring(i + 1);
}
}
解题思路:
1, 将非构成单词的字符改为单词间隔符;
2, 将字符串转化为数组;
3, 倒序遍历数组并进行输出即可