1. 문제(원본)
Given a string s and an integer array indices of the same length.
The string s will be shuffled such that the character at the ith position moves to indices[i] in the shuffled string.
Return the shuffled string.
Example 1:
Input: s = "codeleet", indices = [4,5,6,7,0,2,1,3] Output: "leetcode" Explanation: As shown, "codeleet" becomes "leetcode" after shuffling.
Example 2:
Input: s = "abc", indices = [0,1,2] Output: "abc" Explanation: After shuffling, each character remains in its position.
Example 3:
Input: s = "aiohn", indices = [3,1,4,2,0] Output: "nihao"
Example 4:
Input: s = "aaiougrt", indices = [4,0,2,6,7,3,1,5] Output: "arigatou"
Example 5:
Input: s = "art", indices = [1,0,2] Output: "rat"
Constraints:
- s.length == indices.length == n
- 1 <= n <= 100
- s contains only lower-case English letters.
- 0 <= indices[i] < n
- All values of indices are unique (i.e. indices is a permutation of the integers from 0 to n - 1).
2. 문제
문자열을 입력받은 정수형 배열의 인덱스 값으로 재배열
3. 나의 답
class Solution {
func restoreString(_ s: String, _ indices: [Int]) -> String {
var result = s
for (index, element) in s.enumerated() {
result.remove(at: result.index(result.startIndex, offsetBy: indices[index]))
result.insert(element, at: result.index(result.startIndex, offsetBy: indices[index]))
}
return result
}
}
4. 다른 유저의 답
#1
class Solution {
func restoreString(_ s: String, _ indices: [Int]) -> String {
var str = Array<Character>(repeating: Character("a"), count: s.count)
for (i, char) in s.enumerated() {
str[indices[i]] = char
}
return String(str)
}
}
5. 마무리
Character형으로 바꾼 후 재배열을 진행했으면 쉽게 진행할 수 있었는데 String형으로 어떻게 진행해보려고 하니까 뭔가 복잡해진 기분이 들었다. 간혹 알고리즘 구상 시 알아두면 좋은 팁들이 있다. 예를 들어 정수의 자릿수를 구할 때 String형으로 형 변환을 하고 그 카운트를 세면 간단히 자릿수를 구할 수 있다. 이러한 팁들을 많이 익히는 것이 시간 단축에 많은 도움이 된다고 생각한다.
'알고리즘 > 해결' 카테고리의 다른 글
LeetCode August2.Design HashSet (0) | 2020.08.03 |
---|---|
LeetCode August1.Detect Capital (0) | 2020.08.03 |
LeetCode1480. Running Sum of 1d Array (0) | 2020.07.30 |
LeetCode1470. Shuffle the Array (0) | 2020.07.28 |
LeetCode1464. Maximum Product of Two Elements in an Array (0) | 2020.06.05 |