原本遇到判断字符串中是否含有重复元素的问题总是使用for循环遍历进行判断,这一方法则需要O(n3)的时间复杂度,如果本身方法处于几个循环中,就会指数倍增加时间复杂度.类似于如下代码: String[] a = s.split(""); int max = 1; for(int i = 0; i < a.length; i++){ String[] b = new String[a.length - i]; b[0] = a[i]; int permax = 1; for(int…
判断数组中是否有重复元素,最容易想到的方法是使用2重循环,逐个遍历,比较,但是这个是最慢,最笨的方法,百度得出了更好的方法. var ary = new Array("111","22","33","111"); var nary=ary.sort(); for(var i=0;i<ary.length;i++){ if (nary[i]==nary[i+1]){ alert("数组重复内容:"+na…
/** * 判断字符串中是否含有中文 */ public static boolean isCNChar(String s){ boolean booleanValue = false; for(int i=0; i<s.length(); i++){ char c = s.charAt(i); if(c > 128){ booleanValue = true; break; } } return booleanValue; } 如果true,包含中文: 如果false,不包含中文…
原文:http://www.open-open.com/code/view/1426332240717 判断字符串中是否含有汉字: String str = "test中文汉字"; String regEx = "[//u4e00-//u9fa5]"; /** * 判断有没有中文 */ if (str.getBytes().length == str.length()) { System.out.println("无汉字"); } else {…
实现代码: /* * 判断字符串中是否含有英文,包含返回true */ public boolean isENChar(String string) { boolean flag = false; Pattern p = Pattern.compile("[a-zA-z]"); if(p.matcher(string).find()) { flag = true; } return flag; }…
<?php $str = "测试中文"; echo $str; echo "<hr>"; //if (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str)) { //只能在GB2312情况下使用 //if (preg_match("/^[\x7f-\xff]+$/", $str)){ //兼容gb2312,utf-…
正则表达式使用时需要引用 using System.Text.RegularExpressions; private void buttonX1_Click(object sender, EventArgs e) { Regex r = new Regex("^[0-9]{1,}$"); //正则表达式 表示数字的范围 ^符号是开始,$是关闭 Regex cn = new Regex("[\u4e00-\u9fa5]+");//正则表达式 表示汉字范围 if (!r…
判断是否含有字母 select PATINDEX('%[A-Za-z]%', ‘ads23432’)=0 (如果存在字母,结果<>1) 判断是否含有数字 PATINDEX('%[0-9]%', ‘234sdf’)=0 (如果存在数字,结果<>1)…
核心代码: function haveChinese(str,c){ if(escape(str).indexOf(escape(c))!=-1){ retrun true; } return false; }…
第三种方法为位运算的方法. 位运算符: << 左移  & 与 | 或 #include <iostream> #include <string> #include <unordered_set> #include <vector> #include <unordered_map> using namespace std; //时间 O(n) 空间 O(1) bool hasSame(string str) { ) return…