给定一个字符串,逐个翻转字符串中的每个单词。
我的思路:用栈存储每两个' '之间的字符数组,然后弹栈重新用' '拼接起来即可
代码如下:
public void reverseWords(char[] s){
Stack<List<Character>> stack = new Stack<>();
int i = 0;
while (i < s.length){
int j = i;
List<Character> list = new ArrayList<>();
while (j < s.length && s[j] != ' '){
list.add(s[j]);
j++;
}
i = j+1;
stack.push(list);
}
int index = 0;
while (!stack.isEmpty()){
List<Character> list = stack.pop();
for (int j = 0; j < list.size(); j++) {
s[index] = list.get(j);
index++;
}
if (index != s.length){
s[index] = ' ';
index++;
}
}
}
该博客讨论了一个Java方法,通过使用栈来逐个翻转输入字符串中的每个单词。代码实现中,首先遍历字符串,将每个单词压入栈中,然后依次从栈中弹出单词并拼接,形成翻转后的字符串。这种方法巧妙地利用了栈的后进先出特性来解决字符串处理问题。

300

被折叠的 条评论
为什么被折叠?



