>  기사  >  Java  >  Java는 한 번만 나타나는 첫 번째 문자 찾기를 구현합니다.

Java는 한 번만 나타나는 첫 번째 문자 찾기를 구현합니다.

王林
王林앞으로
2019-11-29 17:13:342892검색

Java는 한 번만 나타나는 첫 번째 문자 찾기를 구현합니다.

Question:

문자열에서 숫자 1을 찾으세요. (0<=문자열 길이<=10000, 모두 문자로 구성됨) 문자 한 번만 나타나고 위치를 반환하며 그렇지 않은 경우 -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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제