String 用于字符计数的就地字符串操作
给定一个字符串,用它的立即计数替换每个字符。 例如:aaabbcc-a3b3c2String 用于字符计数的就地字符串操作,string,algorithm,in-place,String,Algorithm,In Place,给定一个字符串,用它的立即计数替换每个字符。 例如:aaabbcc-a3b3c2 abab-a1b1a1b1您可以执行以下操作 函数getResultinput{ 如果!输入{ return;//如果字符串为空,则返回 } 如果input.length==1{//如果字符串长度为1,则返回input+'1' 返回输入+1 } var inputLength=input.length;//输入字符串的总长度 var preChar=输入[0];//跟踪上一个字符 var count=1;//上一
abab-a1b1a1b1您可以执行以下操作 函数getResultinput{ 如果!输入{ return;//如果字符串为空,则返回 } 如果input.length==1{//如果字符串长度为1,则返回input+'1' 返回输入+1 } var inputLength=input.length;//输入字符串的总长度 var preChar=输入[0];//跟踪上一个字符 var count=1;//上一个字符的计数 对于变量i=1;i
static_assertsizeofsize_类型如果给定aaabbbaabbb,输出是否应为a3b3a3b3?请告诉我们您尝试了什么。@JiaHaoXu这是right@vivek_23除了一个接一个地移动每个字符,我没有得到一个好的解决方案,这是很昂贵的。这些字符串是使用ASCII格式的吗?对于什么操作来说,这似乎太复杂了wants@ninesalt,我可以n理解你的观点,我也不这么认为,但最具挑战性的部分是“就地”更换。我相信,会有更干净的方法来做。但现在,我只想到了上述逻辑,我必须确保每个边缘案例都得到处理。但无论如何,感谢你的建议。:-@Ankush Sharma input=input.substr0,i++input.substri+1这看起来不像是内联编辑。这似乎也是一个错误,您将输入[i+1]更新为。如果输入[i+1]与PRECHAR相同,那么您将无法检测到这一点。因为子字符串在内部创建了一个新的字符串对象,这是不合适的。请考虑一个字符数组并尝试在那里进行操作。这是不合适的,您将输出附加到一个新的变量。问题不是语言所特有的,而是一个算法问题。