设为首页 加入收藏

TOP

一个字符串找查的例子
2014-11-23 23:36:37 来源: 作者: 【 】 浏览:7
Tags:一个 字符串 查的 例子

题目:

给定一母串和一子串,返回子串的任意排列顺序在母串中首次出现的位置,没有则返回-1。如:母串:qwertyuihgfd,子串:tyui,则输出4

分析:

因为子串是任意组合,子串的组合方式不定,不能从子串下手,只有从母串下手了。计算子串长度,循环从第一位开始截取母串子串长度的子串,然后循环这个字串,查找子串中是否存在母串定长度串中的字符,存在就移除,直到循环结束,子串移空,就表明子串能组合成母串的部分,并记录母串截取位置。

答案:

static void Main()

{

List list = new List();

string M = "abcbdedbcbcbbcbbbc";

string S = "bcb";

for (int i = 0; i <= M.Length - S.Length; i++)//循环母串

{

string temp = M.Substring(i, S.Length);//截取母串

List chars = S.ToCharArray().ToList();//转换子串

for (int j = 0; j < temp.Length; j++)

{

if (chars.Contains(temp[j]))

{

chars.Remove(temp[j]);//把到相同的字符移出集合

}

else

{

break;//有不包含的字符就跳出循环,重新比较下一个字符串

}

if (j == temp.Length - 1)//利用j循环的次数来判断找到完整的S字符

{

list.Add(i);

}

}

}

foreach (int index in list)

{

Console.WriteLine("string is {0} index:{1}", M.Substring(index, S.Length), index);

}

}

本文出自 “桂素伟” 博客

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇QT生成右键的示例 下一篇基于Windows平台编译libmemcached..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: