タイトル説明
文字列を考えると、それに最初の非繰り返し文字を見つけ、それのインデックスを返します。それが存在しない場合は、-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」]を使用して、文字が巧み指標となります。