Java は、一度だけ出現する最初の文字の検索を実装します。

王林
リリース: 2019-11-29 17:13:34
転載
2887 人が閲覧しました

Java は、一度だけ出現する最初の文字の検索を実装します。

質問:

文字列 (0<=文字列長<=10000、すべて文字で構成) 文字内で 1 回だけ出現する最初の文字を検索し、次の結果を返します。そうでない場合、その位置は -1 を返します (大文字と小文字を区別する必要があります)

関連ビデオ チュートリアルの推奨事項:Java オンライン チュートリアル

ソリューションのアイデア:

質問の要件は非常に明確で、文字列を走査して文字を数えるというものです。数えた後は、カウント 1 の文字を見つけるだけです。明らかに、これにはハッシュマップの使用が必要です。キーは文字列内の各文字であり、値は文字列内でこの文字が出現する回数です。

コードは次のとおりです:

import java.util.LinkedHashMap;
public class Solution {
    public int FirstNotRepeatingChar(String str) {
        int len = str.length();
        LinkedHashMap<Character, Integer> map = new LinkedHashMap<>();
        for (int i = 0; i < len; i++) {
            char c = str.charAt(i);
            Integer val = map.get(c);
            map.merge(c, 1, (oldValue, newValue) -> oldValue + newValue);
        }
        Character resultKey = null;
        for (Character c : map.keySet()){
            if (map.get(c) == 1){
                resultKey = c;
                break;
            }
        }
        for (int i = 0 ;i < len; i++){
            if (str.charAt(i) == resultKey){
                return i;
            }
        }        
       return -1;
    }
}
ログイン後にコピー

推奨される関連記事とチュートリアル: javaクイック スタート

以上がJava は、一度だけ出現する最初の文字の検索を実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート