编写一个反转字符串的函数。输入字符串以字符数组char []的形式给出。
不要为另一个数组分配额外的空间,必须通过使用O(1)额外的内存就地修改输入数组来实现。
您可以假定所有字符都由可打印的ASCII字符组成。
示例1:
输入:[“ h”,“ e”,“ l”,“ l”,“ o”] 输出:[“ o”,“ l”,“ l”,“ e”,“ h”]
for(int i : numbers) {average += i; }
输入:[“ h”,“ e”,“ l”,“ l”,“ o”]
我的输出[“ e”,“ l”,“ o”,“ h”,“ l”]
预期:[“ o”,“ l”,“ l”,“ e”,“ h”]
谁能告诉我我在哪里错了。
答案 0 :(得分:4)
您添加了一个内部循环,应该基于数组的长度和j
一次循环来计算“ i
”。喜欢,
for (int i = 0; i < s.length / 2; i++) {
char temp = s[s.length - i - 1];
s[s.length - i - 1] = s[i];
s[i] = temp;
}
答案 1 :(得分:1)
您可以使用添加i++
进行修复;这样的完整代码,
class Solution {
public void reverseString(char[] s) {
for(int i=0; i<s.length/2; i++){
for(int j=s.length-1; j>i; j--){
char temp = s[j];
s[j] = s[i];
s[i] = temp;
i++;
}
}
}
}
bt,我不喜欢这种书写风格....