资源预览内容
第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
第9页 / 共11页
第10页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
计算字符串中每种字符出现的次数Dictionary泛型集合用法 前几天,同学问了我一道程序员的面试题,题目是 “统计用户输入的一串数字中每个数字出现的次数”。 当时看到这个题目,我的第一想法就是:1.先判断用户输入的是否是数字,用 if-else 语句来判断;2.将用户输入的数字字符串转换成 char 数组;3.用 for 循环遍历每个字符,根据 switch-case 语句来逐一判断。4.再建立一个 int 数组来接收判断后的结果,最后 for 循环输出。class Programstatic void Main(string args)/计算用户输入的一串数字中每个数字出现的次数Console.WriteLine(请输入一串数字);string str = Console.ReadLine();/将字符串转换为字符数组char chnum = str.ToCharArray();#region 判断用户输入的是否是数字for (int i = 0; i dict = new Dictionary();/将数字字符串转换为单个字符数组char chs = numbers.ToCharArray();for (int i = 0; i item in dict)Console.WriteLine(数字:0出现了1次。 ,item.Key,item.Value);Console.ReadKey();可见,简单的几行代码就解决了。 而且,这种解法完全解决了上面遇到的两个问题。我觉得这个应该就是面试官想要的效果吧。(汗。不知道我那位同学的面试情况怎么样。)写到这里,我又想到了见过的另一道面试题:“计算字符串中每种字符出现的次数”。这要用我开始想到的那种思路来解得话,我岂不是要写 26 个 case 语句来判断吗,汗。不知道面试官要是看到这么多代码岂不是会当场走人。显然这不是最好的解题办法。还是用泛型集合来解:class Programstatic void Main(string args)/计算字符串中每种字符出现的次数(面试题)。 /“Welcome to China , beijing”,/不区分大小写,打印“W2”“e 2”“o 3” /*思路:1 将字符串都转换为小写形式,否则 大小写会算各一个* 2 以字符为键 每个字符出现的次数为值 建立 Dictionary泛型集合* 3 将字符串转换为字符数组* 4 循环遍历每个字符,加入集合中作为键,其对应的值初始为 1* 5 在加入键之前做一个判断,由于集合中的键不能重复,所以判断如果键中已经还有该字符* 则不再加入该键,只把他的值+1* 6 去除字符串中的空格 char.isLetter() 如果是字母,进行操作 5 * 7 总结:主要是泛型集合的应用*/例句:/string sentences=Welcome to China , beijing;Console.WriteLine(请输入一段字母);string sentences = Console.ReadLine();/将字符串都转换为小写形式sentences = sentences.ToLower();/建立泛型集合Dictionary dict=new Dictionary();/将字符串变成字符数组char chs=sentences.ToCharArray(); /遍历每一个字符for (int i = 0; i kv in dict)Console.WriteLine(字母:0出现了1 次。 ,kv.Key,kv.Value);Console.ReadKey();同样,代码很简单:这时,我又突发奇想想到了另一种情况:用户输入一串字母和数字的混合字符串如“ddeieiei4954jjfjdji383ddjeuut3003k”统计出每个数字或字母出现的次数,且数字在前,字母在后 ,数字和字母内没有顺序要求如 数字 4 出现了 2 次 数字 3 出现了 4 次. .字母 d 出现了 5 次.当然,最简单的还是用泛型集合来解了。最后来个总结吧:个人认为,遇到一个新的问题的时候,关键是思路,把思路一步一步理顺了,就像我们老师说的那样,知道你要干什么,想好怎样去做,最后再去写代码。不要一上来就敲代码,思路都没搞清楚呢,最后肯定是问题多多。希望这篇文章可以给像我这样正在找工作的应届生一些小小的帮助吧!(突然觉得在大学里学的那些知识都太简单了,而且太深了也不讲。找工作时真的很无奈啊!)
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号