查找字符串中是否包含相同字符

来源:互联网 发布:最靠谱的网络兼职 编辑:程序博客网 时间:2024/05/17 04:38
/** * 题目: * 请实现一个算法,确定一个字符串的所有字符是否全都不同。 * 这里我们要求不允许使用额外的存储结构。 * 给定一个string,iniString,请返回一个bool值: * True代表所有字符全都不同,False代表存在相同的字符。 * 保证字符串中的字符为ASCII字符。字符串的长度小于等于3000。  * 测试样例: * "aeiou" 返回:True "BarackObama" 返回:False * */public class DifferentString {public boolean checkDifferent(String iniString) {/** * “(.)”表示一个捕获组,“\\1”表示一个反向引用, * 也就是说“\\1”与“(.)”这两个位置的值可以相同,其他位置都是".*", * 表示匹配0~n个任意字符。总的来说,这个正则表达式是匹配出现重复字符的字符串。 * *//** * .:代表任意一个字符  * .*:代表任意一个字符后面有0个或多个字符 * (.):选择字符中任意一个字符进行复制,和后面的(.*\\1)结合进行判断是否后面存在一个字符与它相同  * (.)(.*\\1):匹配案例 a*a(即首尾相同的abcsa) * (.)(.*\\1).*:匹配案例 a*a*  * .*(.)(.*\\1):匹配案例 *a*a  * .*(.)(.*\\1).*:匹配案例 *a*a* * */return iniString.matches(".*(.)(.*\\1).*");    }public static void main(String[] args) {DifferentString diff = new DifferentString();String iniString = "abcd";boolean f = diff.checkDifferent(iniString);System.out.println(f);}}/** * 输出: * false * */

0 0
原创粉丝点击