程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在给定字符串中搜索字符集的最快算法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在给定字符串中搜索字符集的最快算法?

开发过程中遇到在给定字符串中搜索字符集的最快算法的问题如何解决?下面主要结合日常开发的经验,给出你关于在给定字符串中搜索字符集的最快算法的解决方法建议,希望对你解决在给定字符串中搜索字符集的最快算法有所启发或帮助;

如果仅对验证ASCII字符感兴趣,则长度为128的布尔查找表 可能 比上述任何一种方法都快。

解决方法

这是我与一位朋友进行的辩论:制作评估方法的最快方法是什么,该方法可以检查给定的字符串是否包含不允许的字符之一

方法一:简单

char [] invalidChars = "!@#$%^...".toCharArray();
        for (int i = 0; i < myString.length(); i++) {
            char ch = myString.charAt(i);
            for (int j = 0; j < invalidChars.length; j++) {
                if (invalidChars[j] == ch) {
                    return false;
                }
            }
        }

方法II:利用地图的O(1)

Map <String,String> map = new HashMap<String,String>();
        map.put("!",null);
        map.put("@",null);
        map.put("#",null);
        map.put("$",null);
        map.put("^",null);
        ...
        for (int i = 0; i < labels.length(); i++) {
            char ch = labels.charAt(i);
            if (map.containsKey(ch)) {
                return false;
            }
            return true;
        }

我的方法实际上是N2,但是当invalidChars的数量较少时,方法I等于N。情况一:有很多无效字符,情况二:只有很少的无效字符,该怎么办?

注意:我不是在寻找任何内置的Java解决方案,而是在寻找过滤少数(不是全部)非文本字符的算法

大佬总结

以上是大佬教程为你收集整理的在给定字符串中搜索字符集的最快算法全部内容,希望文章能够帮你解决在给定字符串中搜索字符集的最快算法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: