[cc150] 1.1

1769 ワード

1.1 Implement an algorithm to determine if a string has all unique characters. What if you can not use additional data structure?
1.inputは「a」~「z」の26文字しかないと仮定し、最もnaive的なhashをつければよい
 

  
  
  
  
  1. class Solution { 
  2. public
  3.     bool isUniqueChars2(string str){ 
  4.         vector<bool> flag(26, 0); 
  5.         for (int i = 0; i < str.size(); i++) { 
  6.             if(flag[str[i] - 'a'] == 1) return false
  7.             flag[str[i] - 'a'] = 1; 
  8.         } 
  9.         return true
  10.     } 
  11.          
  12. }; 

2.この26文字以上であれば、256スペースのhashを開くのと同じように
3.もしスペースを開けられなかったら、O(n^2)の検索にしましょう
4.stringが動くならstringを並べ替えてO(nlogn)