gpt4 book ai didi

java - 如何使用暴力java移动数组中的元素

转载 作者:行者123 更新时间:2023-11-29 07:25:47 25 4
gpt4 key购买 nike

这是一道面试题。所以你有一个输入字符数组,如下所示:

char[] input = "Hello     world!   ".toCharArray();

任务是开发一种方法,将 char 数组作为输入,并将多余的空格移动到数组的末尾,而不使用 java 提供的任何内置方法,也不从数组中删除任何元素。预期输出:

"Hello world!       ".toCharArray();

如您所见,输入中可能有多余的空格,应将其移至数组末尾。我的尝试:

public char[] moveWhiteSpaces(char[] inArr){
for(int i = 0; i<inArr.length; i++){
String currChar = String.valueOf(inArr[i]);
while(currChar.equals(" ")){
inArr[i] = inArr[i+1];
}
{
return inArr;
}

这是行不通的。那么如何将多余的空格移动到最后而不删除它们呢?输入:['h', 'e', 'l', 'l', 'o', ' ', ' ', ' ', 'w', 'o', 'r', 'l' , 'd', '!', ' ', ' ',]输出:['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', ' ! ', ' ', ' ', ' ', ' ']

最佳答案

在一个for循环中:

static char[] moveWhiteSpaces(char[] input){
char[] result = new char[input.length];
int _char = 0, space = input.length-1;
boolean first_occur = true, first_char = false;
for(int i = 0; i < input.length; i++){
char c = input[i];
if(c != ' '){
result[_char++] = c;
first_char = true;
}else if (c == ' ' && first_occur && first_char){
result[_char++] = c;
first_occur = false;
}else{
result[space--] = c;
}
}
return result;
}

测试

char[] input = "Hello     world!   Hello     world!   hahah hohohoh hehehe     random! ! ! :)".toCharArray();
System.out.println(moveWhiteSpaces(input));

结果

Hello world! Hello world! hahah hohohoh hehehe random! ! ! :)                

关于java - 如何使用暴力java移动数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53276705/

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