トピック:
文字列を考えると、その最初の非反復文字を見つけると、そのインデックスを返します。ない場合は、-1を返します。
ケース:
S = "leetcode"
リターン0。
S = "loveleetcode"、
2に戻ります。
解決策1:少し暴力は、主要なアイデアは、重複する値があるかどうかを確認するのindexOfの照会を使用し、自身の後に捨てられた、は直接のリターン現在のインデックスが存在しない
/ * * * @param {文字列} S {} * @return番号 * / VARの firstUniqChar = 関数(S){ VAR LEN = s.length; のための(VAR ; IがLEN <I ++はI = 0 ){ VARの STR = S、 テスト = str.split( '' ); test.splice(I、 1 ) ; VARサブ= test.indexOf(S [I]); IF(サブ=== -1)リターンI; } 戻り -1 ; };
対処方法2:
ここでの考え方は、繰り返しの回数を記録するカウンタとして中間変数を使用することです。私は試合の次の番号を見つけるために、ループの外に直接イベントを繰り返します。最初の直接戻り、現在のインデックスは、すべてのイベントを壊すのとそうではなく、反復
/ * * * @param {文字列} S * @return {数値} * / VAR firstUniqChar = 関数(S){ VARの LEN = s.length;
//各サイクルの値を比較する必要がある ため(VARの I = 0; IがLEN <; I ++は){
//導入カウンタ VARをサブ= 0 ;
//自体以外の基準値の各サイクルの ための(VAR 0 = J; J <LEN; J ++ ){
//遭遇直接アウト自体を複製していないが、カウンタの時間と比較サイクルをカウントする IF {(S [I] === S [J] && J == I)!
サブ++ ;
ブレーク;
} } もし(サブ=== 0)リターンI。 } 戻り -1 。 }。
上記溶液に加えて、2つのアイデア溶液IIIの思考を溶液系。
それはindexOfの照会を使用し、それは最初の文字は値を複製することはできません遭遇知って抽出した後、新しい文字列を抽出して返すように最初の文字、エキス、エキスと繰り返し文字の文字列の最初のものですこの文字列は、そのインデックス、繰り返されることはありませんか、直接的なリターンを返す-1