当前位置: 首页 > 知识库问答 >
问题:

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

公西季
2023-03-14

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

 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;
    }
}

编辑

我改了密码。现在它抛出了一个输入错误

abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_+

错误:

线程“main”java中出现异常。util。正则表达式。PatternSyntaxException:索引1附近的未关闭组(^at java.util.regex.Pattern.error,Pattern.java:1924)。util。正则表达式。图案在java上接受(Pattern.java:1782)。util。正则表达式。图案java上的group0(Pattern.java:2857)。util。正则表达式。图案java的sequence(Pattern.java:2018)。util。正则表达式。图案expr(Pattern.java:1964)在java。util。正则表达式。图案在java上编译(Pattern.java:1665)。util。正则表达式。图案(Pattern.java:1337)在java。util。正则表达式。图案在java上编译(Pattern.java:1022)。朗,弦。replaceFirst(String.java:2119)在解决方案中。在Main上是唯一的(Solution.java:12)。main(main.java:11)

共有2个答案

易祖鹤
2023-03-14

注意:因为你没有提到你使用的编程语言。我认为它是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;
        }
        }
    }
龚俊捷
2023-03-14

问题是replace First的第一个参数是一个正则表达式。所以它会对\^.等造成严重破坏。为此,您可以使用:

    str = str.replaceFirst(Pattern.quote(s), "");

这将从字符(“模式”\\(“)中生成。

最后简单地返回:

return str.isEmpty();

或者你可能只满足于包含

int uniques = 0;
for (int i = 0; i <= 127; i++) {
    s = Character.toString((char) i);
    if (str.contains(s)) {
        ++uniques;
    }
}
return str.length() == uniques;

您的算法应该适用于US-ASCII。

 类似资料:
  • 我正在寻找一个运算符,它允许我检查字段的值是否包含某个字符串。 比如: 可能吗?

  • 所以我一辈子也想不出来。我正在尝试编写一个程序,提示用户输入电话号码。这将作为字符串输入,并在稍后的程序中转换为整数数组。然而,我现在遇到的情况是验证用户输入的字符串是否仅限于!!!包含2-9之间的数字。我已经尝试了。Contains方法和。Match方法,但是使用这些方法总是提供错误的结果。如果有人能提供一些关于如何解决这个问题,我将非常感谢。提前感谢。 以下是我目前掌握的信息:

  • 我能够通过使用下面这个问题的注释提供的代码来解决这个问题。所有其他帖子都是有效的! 我使用的有用的东西来自第一个评论。虽然提供的所有示例代码似乎也是有效的!

  • 问题内容: 我想检查我的字符串是否包含+字符。我尝试了以下代码 但是它没有给出预期的结果。 问题答案: 您需要此: 类的方法不使用正则表达式作为参数,而是使用普通文本。 编辑: 输出:

  • 本文向大家介绍在 JavaScript 中包含唯一字符的筛选字符串,包括了在 JavaScript 中包含唯一字符的筛选字符串的使用技巧和注意事项,需要的朋友参考一下 问题 我们需要编写一个 JavaScript 函数来接受一个字符串 str。我们的函数应该构造一个只包含输入字符串中唯一字符的新字符串,并删除出现的所有重复字符。 示例 以下是代码- 输出结果 以下是控制台输出-

  • 问题内容: 我发现的大多数问题都偏向于他们正在寻找数字中的字母这一事实,而我正在寻找我想成为无数字符串的数字。我需要输入一个字符串,并检查它是否包含任何数字以及是否确实拒绝它。 仅当所有字符均为数字时,该函数才返回。我只想看看用户是否输入了一个数字,例如“我拥有一只狗”之类的句子。 有任何想法吗? 问题答案: 你可以像这样使用函数和函数 另外,你可以使用正则表达式,如下所示