반응형
https://leetcode.com/problems/replace-all-s-to-avoid-consecutive-repeating-characters/description/
간단 문자열 다루는 문제였습니다.
📕 풀이방법
📔 풀이과정
s의 원소에 대해 loop를 수행합니다.1. 일반 alphabat이면 continue합니다.2. '?'라면 'a'부터 'z'까지 loop를 수행하며 다음을 진행합니다. 2-1. 왼쪽 인접 alphabat이나 오른쪽 인접 alphabat이 같다면 continue합니다. 2-2. 인접 원소 중 겹치지 않는 alphabat을 찾아 s[i]를 교체해줍니다.
📔 정답 출력 | 반환
s를 반환합니다.
📕 Code
📔 C++
class Solution {
public:
string modifyString(string s) {
for(int i = 0; i < s.size(); i++) {
if(s[i] != '?') continue;
for(char alpha = 'a'; alpha <= 'z'; alpha++) {
if(i > 0 && alpha == s[i-1] || (i+1) < s.size() && alpha == s[i+1]) continue;
s[i] = alpha;
}
}
return s;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.