我正在编写用于对字符串进行操作的代码。结果应该是我需要返回两次包含字符串“ a”的字符串,例如“ aa”,两次返回“ b”的字符串,例如“ bbb”,依此类推,仅当存在具有此模式的字符时如此。例如 “ aahasdashdjaaabbbasjccccc”我应该得到“ aabbb”,因为字符串c中出现两次保守的“ a”和三次“ b”应该重复了4次,但是由于没有重复精确的4次,所以不应出现在结果中
以下代码在Global变量中列出了这些字符串。我不希望全局,而只希望使用局部变量来实现此目的。任何帮助将不胜感激
static List<string> s = new List<string>();
static string recur(string str, int i, string sub) {
string temp = "";
if (i == str.Length)
{
return string.Join(",", s.ToArray()) + str[str.Length - 1];
}
else if (i == 0)
{
i++;
return recur(str, i, "");
}
else if (str[i - 1] == str[i])
{
if (sub == "")
{
temp = str[i - 1].ToString();
}
temp += str[i].ToString() + sub; ;
return temp + recur(str, i + 1, temp);
}
else if (str[i - 1] != str[i])
{
if (sub != "")
{
int x = (int) sub[0];
int c = x - 95;
if (sub.Length == c)
{
s.Add(sub);
i++;
return recur(str, i, "");
}
}
i++;
return recur(str, i, "");
}
else
{ return ""; }
}