본문 바로가기

Algorithm/String

(C++) - LeetCode (easy) 1576. Replace All ?'s to Avoid Consecutive Repeating Characters

반응형

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;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.