[Leetcode] 58. Length of Last Word

Algorithm|2021. 7. 26. 19:46
반응형

Identifying the Problem

띄어쓰기 뒤에 있는 문자열의 길이를 리턴한다.

 

제한조건 

  • 1 <= s.length <= 10^4
  • s consists of only English letters and spaces ' '

Organizing thoughts

0. 애초에 문자열 길이가 1인 경우는 결과가 두 개이기에 처리한다.

1. 문자열 길이만큼 반복한다.

2. 글자수를 count 하다

2-1 스페이스바를 만나면 count를 0으로 초기화한다.

 

--- 여기까지는 모든 test case를 만족했지만,

 

HELLO WORLD_ _ 처럼 맨 뒤에 띄어쓰기 두 개를 써리면 다 초기화되어버린다.

또한 A _ 를 해도 1을 RETURN 하는 것이 아니라 0을 리턴한다.

 

 

이 문제를 어떻게 해결해야 할까?

 

3. count 가 0으로 초기화되기 전에 예비로 count를 저장해두면 된다!

하지만 count 를 막 저장하는 것이 아니라, count가 0보다 클 때 저장해야 한다.

매 시도마다 count를 예비로 저장해두면 의미가 없기 때문이다.

Sourcecode

int lengthOfLastWord(char * s){

    int count = 0;
    int i=0;
    int n = strlen(s);
    int temp = 0;
    
    if(n==1)
    {
      if(*s==' ') return 0;
      else return 1;

    }

    
    
    
    while( i<n )
    {
      if( *(s+i)==' '  )
      {
          if(i==n-1) break;
          count=0;
      }
      else
          count++;
      
        
      if(count>0) temp=count;
        
     i++;
    }
    
    return temp;
}

 

반응형

'Algorithm' 카테고리의 다른 글

[Leetcode] 67. Add Binary  (0) 2021.07.27
[Leetcode] 66. Plus One  (0) 2021.07.26
[Leetcode] 53. Maximum Subarray  (0) 2021.07.25
[Leetcode] 35. Search Insert Position  (0) 2021.07.25
[Leetcode] 28. Implement strStr()  (0) 2021.07.25

댓글()