C#代码返回不带全局变量的匹配条件文本

时间:2019-06-21 11:03:22

标签: c# .net recursion

我正在编写用于对字符串进行操作的代码。结果应该是我需要返回两次包含字符串“ 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 ""; }
}

0 个答案:

没有答案