w**********4 发帖数: 157 | 1 压缩String
input : aaabbbbcc
output:a3b4c2
1,要求实现 in place, no extra space。
2,时间复杂度越低越好 |
l*****a 发帖数: 14598 | 2 abcdef咋整?
【在 w**********4 的大作中提到】 : 压缩String : input : aaabbbbcc : output:a3b4c2 : 1,要求实现 in place, no extra space。 : 2,时间复杂度越低越好
|
d*l 发帖数: 1810 | 3 只能假设源里没有数字了
【在 l*****a 的大作中提到】 : abcdef咋整?
|
n*******e 发帖数: 4894 | 4 这不是cc150里的题目么。。。
【在 w**********4 的大作中提到】 : 压缩String : input : aaabbbbcc : output:a3b4c2 : 1,要求实现 in place, no extra space。 : 2,时间复杂度越低越好
|
s********l 发帖数: 998 | |
b******g 发帖数: 3616 | 6 但CC150上的那个解法不是in place的。这题in place的话应该理解成在input string
基础上改成output string,而不是新建一个output string吧。这个如果非要in place
的话会牺牲很多时间复杂度啊。
【在 n*******e 的大作中提到】 : 这不是cc150里的题目么。。。
|
n****2 发帖数: 307 | |
v***o 发帖数: 287 | 8 public static void compressString(char[] input)
{
if (input == null)
return;
int previous = 0, current = 0, count = 0;
while (current < input.length)
{
if (input[current]!= input[previous])
{
insertInt(input, previous +1, Integer.toString(count));
input[previous + Integer.toString(count).length + 1] = input[
current];
previous = current;
current ++;
count = 0;
}
else
{ current ++; count ++;}
}
}
public static void insertInt(char[] input, int position, char[] nums)
{
for(int i = 0; i < nums.length; i++)
{
input[position++] = num[i];
}
}
【在 w**********4 的大作中提到】 : 压缩String : input : aaabbbbcc : output:a3b4c2 : 1,要求实现 in place, no extra space。 : 2,时间复杂度越低越好
|
n******a 发帖数: 83 | |
m*****k 发帖数: 731 | 10 previous = current;????
【在 v***o 的大作中提到】 : public static void compressString(char[] input) : { : if (input == null) : return; : int previous = 0, current = 0, count = 0; : : while (current < input.length) : { : if (input[current]!= input[previous]) : {
|