文字列内のLC 387まずユニークなキャラクター

タイトル説明

文字列を考えると、それに最初の非繰り返し文字を見つけ、それのインデックスを返します。それが存在しない場合は、-1を返します。

S = "leetcode" 
リターン0 

S = "loveleetcode"、
2を返します。

注意:あなたは、小文字のみが含まれている文字列をとることができます。

回答

1  クラスソリューション{
 2  公共3      INT firstUniqChar(ストリングS){
 4  
5          INTカウント[ 26 ] = { 0 }。
6          チャーC:S){
 7              カウント[C- ' ' ++] 8         }
 9 のための(iは= SIZE_T 0 ; iはs.size()<; iは++ ){
 10の場合 - ([S [i]のカウント' ' ==] 1リターン                       私;
11          }
 12          リターン - 1 13          
14          / * 
15          unordered_map <チャー、整数>マップ。
16          INT分= 0。
17          
18          のための(I = 0 SIZE_T; iは<s.lengthを(); ++ I){
 19              IF(map.count(S [I])> 0){
 20                  マップ[S [I] = -1。
21              }他{
 22                  マップ[S [I] = I。
23              }
 24          }
 25          (I = 0 size_tの、iは(s.lengthを<); ++ i)に対する{
 26              IF(マップ[S [I] = -1!){
 27                 リターンマップの[S [I]];
28              }
 29          }
 30          リターン-1。* / 
31          }
 32 }。

サプリメント

最初はいえ、受け入れ、自分の答えを思い付いた、と最初の兄はたくさんの悪化したが、気持ちはまだ非常に興奮しています。

回答は、数[C - 「A」]を使用して、文字が巧み指標となります。

おすすめ

転載: www.cnblogs.com/kykai/p/11616614.html