짱아의 개발 기록장

LeetCode : 58. Length of Last Word 본문

Algorithm/LeetCode

LeetCode : 58. Length of Last Word

jungahshin 2022. 1. 22. 22:00
반응형

처음에는 쉽게 쉽게 풀 수 있을 줄 알았으나? 그렇게 쉽지는 않았던 문제였다.

 

일단, 문자열이 공백으로 끝날 수도 있고 문자로 끝날 수도 있기 때문에

변수 before, curr 로 문자열의 길이를 저장해주었다.

1. 문자로 끝날 경우 -> curr의 길이를 반환

2. 공백으로 끝날 경우 -> before의 길이를 반환

 

이렇게 나눈 이유는, 공백이 올 경우 바로 끝날 수도 있고 그 다음에 또 문자가 다시 올 수도 있기 때문이다.

따라서, curr 변수를 계속 초기화 해야하지만 공백으로 끝날 경우 초기화하면 전의 문자 길이를 반환할 수 없기 때문에

2가지 변수로 구분할 수 밖에 없었다....(말이 너무 복잡해보이지만^^ 코드를 보면 잘 이해가 될 것 같다)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Solution {
public:
    int lengthOfLastWord(string s) {
        int before = 0;
        int curr = 0;
        bool check = false;
        for(int i=0; i<s.size(); i++)
        {
            if(s[i]!=' '
            {
                check = true;
                curr++;
            }
            else {
                if(check)
                {
                    check = false;
                    before = curr;
                    curr = 0;
                }
            }
        }
        if(check) return curr;
        else return before;
    }
};
cs
반응형
Comments