AcWing 77. 翻转单词顺序-Java
原题链接
中等
看代码
class Solution {
// 每个单词和空格为一个整体,放入栈中
// public String reverseWords(String y) {
// char[] str = y.toCharArray();
// Stack <List <Character>> ss = new Stack <>();
// List <Character> list = new ArrayList <>();
// for (char s : str) {
// if (s != ' ') {
// list.add(s);
// } else {
// List<Character> tmp = new ArrayList <>();
// tmp.addAll(list);
// List<Character> p = new ArrayList <>();
// p.add(s);
// ss.add(tmp);
// ss.add(p);
// list.clear();
// }
// }
// ss.add(list);
// String res = "";
// while (!ss.isEmpty()) {
// List <Character> t = ss.pop();
// for (char c : t) {
// res += c;
// }
// }
// return res;
// }
//还是以单词为整体- -QAQ
public String reverseWords(String s) {
String[] str = s.split(" ");
for(int i = 0, j = str.length - 1; i < j; i++, j--) swap(str, i, j);
String res = "";
for(int i=0;i<str.length;i++){
res += str[i] + " ";
}
return res.substring(0,res.length()-1);
}
public void swap(String[] s, int i, int j){
String temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}