找出字符串是否包含唯一字符

时间:2015-11-23 07:07:17

标签: java string character

代码非常简单。它会检查所有字符一次并替换它们的第一次出现。但输入失败=" aab"。我不知道为什么。 编程语言是java。

<div class="FooBar"></div>

修改

我改变了代码。现在它输入错误输入

 public class Solution {
 /**
 * @param str: a string
 * @return: a boolean
 */
 public boolean isUnique(String str) {
    // write your code here
    for(int i = 0; i <= 127; i++) {
        s = Character.toString((char) i);
        if(str.contains(s))
        str = str.replaceFirst(s, "");
    }
    if(str.length() == 0)
    return true;
    return false;
    }
}

错误:

线程中的异常&#34; main&#34; java.util.regex.PatternSyntaxException:索引1附近的未闭合组(在java.util.regex.Pattern.error(Pattern.java:1924)中的^,位于java.util.regex.Pattern.accept(Pattern.java:1782)at at java.util.regex.Pattern.expr的java.util.regex.Pattern.sequence(Pattern.java:2018)中的java.util.regex.Pattern.group0(Pattern.java:2857)(Pattern.java:1964) java.util.regex.Pattern.compile(Pattern.java:1665)java.util.regex.Pattern.compile(Pattern.java:1665)java.util.regex.Pattern.compile(Pattern.java:1032)在java.lang.String.replaceFirst(String.java:2119)at Main.main(Main.java:11)​​的Solution.isUnique(Solution.java:12)

1 个答案:

答案 0 :(得分:0)

注意:由于您没有提到您使用的编程语言。我认为它是C#。

解决方案:

 public class Solution {
     /**
     * @param str: a string
     * @return: a boolean
     */
     public boolean isUnique(String str) {
        // write your code here
        for(int i = 0; i <= 127; i++) {
            int count = str.Split(Character.ToString((char) i)).Length - 1;
           if(count>0)
              return false;
        }
        }
    }