gpt4 book ai didi

java - 我如何通过堆栈按顺序反转字符串中的多个单词

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:54:03 25 4
gpt4 key购买 nike

例如我有这个字符串:

"rome lucy blue"

我想得到这个:

"emor ycul eulb" 

通过使用堆栈。

我只能通过这种方式反转:

"eulb ycul emor"

遵循代码:

public static String solution(String s) {

Deque<Character> stack = new ArrayDeque<>();
for (int i = 0; i < s.length(); i++) {
char chr = s.charAt(i);
stack.push(chr);
}
String output = "";
while (!stack.isEmpty()) {
char chr = stack.pop();
output = output + chr;
}
return output;
}

我尝试使用另一个循环,但结果相同。

最佳答案

实现你在评论中所说的想法。对于字符串中的每个字符,如果它是一个空格,则弹出并将堆栈中的所有内容追加到结果中,否则将其压入堆栈。

public static String reverseWords(String str) {
StringBuilder res = new StringBuilder();

Deque<Character> stack = new ArrayDeque<>();
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (Character.isSpaceChar(ch)) {
while (!stack.isEmpty()) res.append(stack.pop());
res.append(ch);
} else {
stack.push(ch);
}
}

// Handle anything left in the stack
while (!stack.isEmpty()) {
res.append(stack.pop());
}

return res.toString();
}

关于java - 我如何通过堆栈按顺序反转字符串中的多个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42148971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com