(LeetCode) 387. First Unique Character in a String
First Unique Character in a String
- Explore : Interview > Top Interveiw Questions > Easy Collection
- 분류 : String
- 난이도 : Easy
Problem
Given a string s
, return the first non-repeating character in it and return its index. If it does not exist, return -1
.
Example 1
1 2
| Input: s = "leetcode" Output: 0
|
Example 2
1 2
| Input: s = "loveleetcode" Output: 2
|
Example 3
1 2
| Input: s = "aabb" Output: -1
|
Constraints
1 <= s.length <= 10^5
s
consists of only lowercase English letters.
Solution
Exapnder
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| class Solution { fun firstUniqChar(s: String): Int { var result = Int.MAX_VALUE
for (i in 97 until 123) { var first = s.indexOfFirst { it == i.toChar() } var last = s.indexOfLast { it == i.toChar() }
if (first == -1) { continue }
if (first == last) { result = Math.min(result, first) } }
return if (result == Int.MAX_VALUE) { -1 } else { result } } }
|
Point of Thinking
- 주어지는 문자열 내의 중복을 제거하여 유니크한 값을 찾는 것은 의미가 없다.
- 구하고자하는 것은 반복되지 않는 문자의 index를 찾는 것이다.
- 주어진 문자열내의 첫번째 index와 마지막 index가 같다면 해당 문자는 unique하다고 볼 수 있다.
- 위의 조건에 해당하는 문자열 중 가장 작은 index를 반환하면 Accpeted