java查找最小字符集_java – 用于搜索给定字符串中的字符集的最快算法

这是我和我的一个朋友讨论的问题:制作一个valiation方法的最快方法是检查给定的字符串是否有一个不允许的字符

方法一:简单

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;

}

}

}

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

Map map = new HashMap();

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;

}

方法I实际上是N2,但当invalidChars数量较少时,与N一样好.

第一种情况应该优先考虑:有很多无效字符,案例二:只有少数无效字符?

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值