首页 新闻 搜索 专区 学院

求助:C#实现一个算法

0
悬赏园豆:20 [已解决问题] 解决于 2017-08-23 13:28

题目:

请实现一个方法:传入两个字符串,返回第二个字符串在第一个字符串中所有出现的位置,并写出Unit Test的测试数据。

int[] GetAllIndex(string s1,string s2)

skybirdzw的主页 skybirdzw | 初学一级 | 园豆:3
提问于:2013-03-01 12:31
< >
分享
最佳答案
0

嗯, 帮测试了一个 但是期待更好的办法。

        string a = "abbcbb1bb";
            string b = "bb";
       var contain = true; List<int> list = new List<int>(); while (contain) { if (a.Contains(b)) { var Index = a.IndexOf(b); Regex r = new Regex(b); a = r.Replace(a, "*".PadLeft(b.Length,'*'), 1); list.Add(Index); } else { contain = false; } } list.ForEach((p) => { Response.Write(p); Response.Write("</br>"); });
收获园豆:15
telang | 小虾三级 |园豆:646 | 2013-03-01 13:59
其他回答(1)
0
static int[] GetAllIndex(string s1, string s2)
        {
            List<int> ls = new List<int>();
            int pos = -1;
            do
            {
                pos = s1.IndexOf(s2, pos + 1);
                if (pos != -1) ls.Add(pos);
            }
            while (pos != -1);
            return ls.ToArray();
        }
收获园豆:5
飞来飞去 | 园豆:2057 (老鸟四级) | 2013-03-01 14:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册