相关疑难解决方法(0)

解释使用位向量来确定所有字符是否都是唯一的

我很困惑有点矢量如何工作(不太熟悉位向量).这是给出的代码.有人可以带我走过这个吗?

public static boolean isUniqueChars(String str) {
    int checker = 0;
    for (int i = 0; i < str.length(); ++i) {
        int val = str.charAt(i) - 'a';
        if ((checker & (1 << val)) > 0) return false;
        checker |= (1 << val);
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

特别是,checker做什么?

java string bit-manipulation bitvector

133
推荐指数
7
解决办法
5万
查看次数

检测字符串是否具有唯一字符:将我的解决方案与"破解编码面试"进行比较?

我正在阅读"破解编码面试"一书,我在这里遇到了一些问题,但是我需要帮助比较我对解决方案的回答.我的算法有效,但我很难理解书中的解决方案.主要是因为我不明白一些运营商在做什么.

任务是:"实现一个算法来确定一个字符串是否具有所有唯一字符.如果你不能使用其他数据结构怎么办?"

这是我的解决方案:

public static boolean checkForUnique(String str){
    boolean containsUnique = false;

    for(char c : str.toCharArray()){
        if(str.indexOf(c) == str.lastIndexOf(c)){
            containsUnique = true;
        } else {
            containsUnique = false;
        }
    }

    return containsUnique;
}
Run Code Online (Sandbox Code Playgroud)

它有效,但效率如何?我看到Java中String的索引函数的复杂性是O(n*m)

以下是本书的解决方案:

public static boolean isUniqueChars(String str) {
    if (str.length() > 256) {
        return false;
    }
    int checker = 0;
    for (int i = 0; i < str.length(); i++) {
        int val = str.charAt(i) - 'a';
        if ((checker & (1 << val)) > 0) return false;
        checker …
Run Code Online (Sandbox Code Playgroud)

java string algorithm big-o time-complexity

47
推荐指数
2
解决办法
6万
查看次数

确定一个字符串是否包含所有唯一字符?

任何人都可以告诉我如何实现一个程序来检查包含所有唯一字符的字符串?

c string algorithm unique

12
推荐指数
4
解决办法
2万
查看次数

实现算法以确定字符串是否具有所有唯一字符

背景:我是一名CS n00b正在通过"破解编码面试".第一个问题要求"实现一个算法来确定一个字符串是否具有所有唯一字符." 我(可能是天真的)实现如下:

def isUniqueChars2(string):
  uchars = []
  for c in string:
    if c in uchars:
      return False
    else:
      uchars.append(c)
  return True
Run Code Online (Sandbox Code Playgroud)

作者建议以下实施:

def isUniqueChars(string):
  checker = 0
  for c in string:
    val = ord(c) - ord('a')
    if (checker & (1 << val) > 0):
      return False
    else:
      checker |= (1 << val)
  return True
Run Code Online (Sandbox Code Playgroud)

是什么让作者的实现比我的更好(FWIW,作者的解决方案是在Java中,我把它转换为Python - 是我的解决方案,不可能在Java中实现)?或者,更一般地说,解决这个问题需要什么?我采取的方法有什么问题?我假设有一些基本的CS概念(我不熟悉)很重要,有助于选择采用哪种方法解决这个问题.

python

9
推荐指数
2
解决办法
1万
查看次数

字符串唯一字符

实现算法以确定字符串是否具有所有唯一字符.如果您不能使用其他数据结构怎么办?

string

-1
推荐指数
1
解决办法
5724
查看次数