这是关于反转字符串的问题

时间:2019-11-12 02:31:09

标签: java arrays string algorithm

编写一个反转字符串的函数。输入字符串以字符数组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”]

谁能告诉我我在哪里错了。

2 个答案:

答案 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,我不喜欢这种书写风格....