首页 > 代码库 > 查找不在数组里的字母
查找不在数组里的字母
题目:有一个数组包含 很多字母,如何查找 26 个字母 不在 里面的字母
eg: {a,b,c,c,c,c} 那么就是 d - z
算法思路:维护一个 整形数组 对应 字母数组的 asci 码, 查找 字母数组,如果某字母出现一次,对应的 整形数组 就 + 1。最后,整形 数组为 0 的,就是没出现的。
C#代码实现如下:
//1. 1+'a' 会得到一个数字 //2. 为了使 算法更完善,加入一个 计数,如果 26 个字母都找到了,就不需要在找了 char[] chArr = new char[] { 'a', 'b', 'c', 'd', 'e', 'g', 'k', 'k', 'l', 'l', 'z' }; int[] intArr = new int[26]; int num = 26; for(int i = 0;i < chArr.Length;i++) { if (intArr[chArr[i] - 'a'] == 0 && num > 0) { intArr[chArr[i] - 'a']++; num--; } } for (int i = 0; i < intArr.Length;i++ ) { if (intArr[i] == 0) Console.WriteLine(Convert.ToChar(i + 'a')); }
这只是本人的想法和实现,如果有其它意见的,欢迎提出讨论。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。