查找不在数组里的字母

Posted phlsheji

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查找不在数组里的字母相关的知识,希望对你有一定的参考价值。

题目:有一个数组包括 非常多字母,怎样查找 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'));
            }

这仅仅是本人的想法和实现,假设有其他意见的,欢迎提出讨论。


以上是关于查找不在数组里的字母的主要内容,如果未能解决你的问题,请参考以下文章

php |字谜求解器通过 woldcard 查找不在原始搜索中的字母

Sql-哪个字母不在名称中

web代码片段

如何在 C++ 中执行“不在数组中”

从数字数组中查找可能的字母字符串数

为啥此代码片段返回意外结果?