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는 한 번만 나타나는 첫 번째 문자 찾기를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!