查找字符串中是否包含相同字符
2017-01-20 16:21
267 查看
/** * 题目: * 请实现一个算法,确定一个字符串的所有字符是否全都不同。 * 这里我们要求不允许使用额外的存储结构。 * 给定一个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 * */
相关文章推荐
- request.getReader()乱码问题
- 绝对干货-国内值得关注的官方API集合,很全很强大(必须收藏)
- ThreadLocal使用及源码解读
- J
- scanf函数简单问题讨论
- JSON 数据详解及实例代码分析
- leetcode 476 Number Complement
- ARM Linux设备树的应用例子1
- Android 备注快捷使用方式
- Python判断一个文件中的字符串是否存在于另外一个文件中
- Angular ui.bootstrap.pagination分页
- ctags使用详解
- LINUX设备驱动之设备模型一--kobject
- 【2017YYHS WC】
- 项目实战_Python.子进程/协程在固件检测更新升级程序中的正确姿势?
- C++计时器:毫秒级和微秒级
- zgrep用法
- springmvc + freemarker 开发环境 缓存设置
- sql查不存在的列
- python中的二进制numpy文件的作用及安装教程