您的位置:首页 > 其它

字符串中的字符是否唯一(

2015-10-02 16:05 295 查看
package StringAndArray;

/**
* 实现一个算法来判断一个字符串中的字符是否唯一(即没有重复).不能使用额外的数据结构。 (即只使用基本的数据结构)
*
*
* 首先,你可以问面试官,构成字符串的字符集有多大?是ASCII字符,还是只是26个字母? 还是有更大的字符集,对于不同的情况,我们可能会有不同的解决方案。
* 如果我们假设字符集是ASCII字符,那么我们可以开一个大小为256的bool数组来表征每个字
* 符的出现。数组初始化为false,遍历一遍字符串中的字符,当bool数组对应位置的值为真,
* 表明该字符在之前已经出现过,即可得出该字符串中有重复字符。否则将该位置的bool数组 值置为true。
*
* @author fh
*
*/
public class Unique_characters {

public static void main(String[] args) {
String s="abc12~";
if(isUnique1(s)){
System.out.println("字符串:"+s+" 没有重复字符");
}else{
System.out.println("字符串:"+s+" 有重复字符");
}
System.out.println();
}
static boolean isUnique1(String s)
{
boolean[] a=new boolean[127];
char[] chars=s.toCharArray();
int len = s.length();
for(int i=0; i < len; ++i)
{
int v = (int)chars[i];
if(a[v]) return false;
a[v] = true;
}
return true;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: