问题描述
任务:
在每次迭代时实现 a 方法,将字符串的奇数字符组合并换行到开头,偶数字符换行到结尾。在实现代码时,需要注意的是,输入的字符串可以包含非常多的字符,迭代次数可能非常大。在速度和资源消耗方面优化您的代码。
输入和预期输出示例:
输入字符串 = "123456789",迭代 = 1,ExpectedResult = "135792468"
输入字符串 = "123456789",迭代 = 2,预期结果 = "159483726"
输入字符串 = "123456789",迭代 = 3,ExpectedResult = "198765432"
输入“1234567890”,迭代= int.MaxValue,预期结果=“1357924680”
我在 C# 中编写了以下代码,它在相对较小的迭代中运行良好,但对于大量(例如 int.MaxValue)效率不高。我注意到经过一定次数的迭代后,给定的字符串返回到其初始状态,例如字符串“123456789”在 6 次迭代后重复。这意味着在第 7 次迭代时,循环再次运行,这是不必要的。我想减少迭代次数,这样代码就不需要运行额外的时间。我如何找到模式?字符串根据其长度以不同的迭代次数重复。
//source is the input string
for(int j = 0; j < iteration; j++){
for(int i = 0; i < source.Length; i+=2){
stack.Push(source[i]);
}
for(int i = 1; i < source.Length; i+=2){
stack.Push(source[i]);
}
char[] res = new char[stack.Count];
for(int i = res.Length - 1; i >= 0; i--){
res[i] = stack.Pop();
}
source = string.Join("",res);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)