Solution 17: 문자열에 한 번만 나타나는 문자

1160 단어 문자열
문제 설명
문자열에서 첫 번째 한 번만 나오는 문자를 찾습니다.문자열 "abbc"를 입력하면 'a' 문자를 출력해야 합니다.
 
절차.
public class FirstCharacter {

	// Time/Space: O(n)

	public char findFirstAppearChar(String s) {

		if (s == null || s.length() == 0) {

			return ' ';

		}



		HashMap<Character, Integer> map = new HashMap<Character, Integer>();

		for (int i = 0; i < s.length(); i++) {

			char c = s.charAt(i);

			if (!map.containsKey(c)) {

				map.put(c, 1);

			} else {

				map.put(c, map.get(c) + 1);

			}

		}



		for (int i = 0; i < s.length(); i++) {

			char c = s.charAt(i);

			if (map.get(c) == 1) {

				return c;

			}

		}



		return ' ';

	}



	// Time: O(n^2)

	public char findFirstAppearCharNaive(String s) {

		if (s == null || s.length() == 0) {

			return ' ';

		}



		for (int i = 0; i < s.length(); i++) {

			char c = s.charAt(i);

			boolean flag = true;

			for (int j = i + 1; j < s.length(); j++) {

				if (s.charAt(j) == c) {

					flag = false;

					break;

				}

			}

			if (flag) {

				return c;

			}

		}

		

		return ' ';

	}

}


좋은 웹페이지 즐겨찾기