CC150 1.1

OK. Let's started.


Question:

1.1 Implement an algorithm to determine if a string has all unique characters. What if you can not use additional data structures?

// Using a set tracking each char
// O(n) for time. Need O(n) for space
boolean isAllCharsUnique(String s)
{
  Validate.notNull(s, "input string is null.");
  
  Set<Char> seenChars = new HashSet<>();
  for (char c : s.toCharArray())
  {
    if (seenChars.contains(c))
      return true;
    else
      seenChars.add(c);
  }
  return false;
}
// If not using extra space, data structure?
// We can sort it, and compare charAt[i] and charAt[i + 1]
// O(NlogN), space: depends on sorting.
boolean isAllCharsUnique(String s)
{
  Validate.notNull(s);
  
  char[] chars = s.toCharArray();
  sort(chars);
  
  for (int i = 0 ; i < chars.length - 1 ; i ++)
  {
    if (chars[i] == char[i + 1])
      return true;
  }
  return false;
}


你可能感兴趣的:(interview)