扩展字符串 - 字符和每个字符的出现

时间:2013-07-24 18:32:32

标签: string

我想像下面那样扩展字符串,但不使用额外的空间..

  a5b1c0d5a1a1

结果应该是..

  aaaaabaa

我被困在这里。怎么做没有额外的空间?

1 个答案:

答案 0 :(得分:1)

我会读取每个字符,检查是字母,而不是取下一个字符,检查它是否为数字,而不仅仅是将结果字符串添加到字母时间。

在你的例子中,我要读的第一件事是a,a是一个字母,所以读下一个,检查它是否是一个数字,它是。所以附加到一个结果字符串五个a。

例如,

使用循环时间来附加字母。

<强>更新

更好地解释我的评论。

所以你循环遍历字符串。

索引0你有'a'。所以你读了一封信,然后你希望得到一个数字,即5。

我现在将字符串分成其他字符串。第一个将拥有一切,直到a,在这种情况下只有一个。

第二个将包含数字之后的所有内容,在本例中为5,这将是b1c0d5a1a1

所以取第一个字符串,与4连接(5-1,你已经有第一个a)然后与字符串的其余部分连接。

string = b1c0d5a1a1
string = substring(0,1) + "aaaa" + substring(1,stringsize-1);

在像0这样的情况下,您可以使用子字符串索引,这样您就可以删除字母,而不是添加更多字母。