gpt4 book ai didi

c# - 面试问题 - 如何循环遍历具有不同起点的数组?

转载 作者:行者123 更新时间:2023-11-30 15:46:31 24 4
gpt4 key购买 nike

假设您有字符串“This is a test”

我将它传递给方法 zee,例如 ("This is a test", 1)并想要“测试这是一个”;

我将它传递给方法 zee,例如 ("This is a test", 2)并想要“测试这是”;

数量可以超过变量中的总字数。如果是这样,它应该循环。

我从……开始

public static string zee(string origString, int i)
{
StringBuilder sb = new StringBuilder();

ArrayList list = new ArrayList();
list.AddRange(origString.Split(' '));

// not sure here -
for (int c = i; c < (list.Count + i); c++)
{
sb.AppendFormat("{0} ", list[c]);
}

return sb.ToString();
}

最佳答案

for(int j=0; j < list.length; j++){
int idx = (j + i) % list.length;
sb.AppendFormat("{0} " , list[idx]);
}

主要类似于 Brent Arias 的解决方案,但我认为 for 循环更具可读性,不太可能变成无限。

    public static string zee(string origString, int i)
{
StringBuilder sb = new StringBuilder();

List<string> list = new List<string>();
list.AddRange(origString.Split(' '));

for (int j = 0; j < list.Count; j++)
{
int idx = (j + i) % list.Count;
sb.AppendFormat("{0} ", list[idx]);
}
return sb.ToString();
}

关于c# - 面试问题 - 如何循环遍历具有不同起点的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4250929/

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