4/06/2014

Leetcode -- Length of Last Word

 
class Solution {  
 public:  
   int lengthOfLastWord(const char *s) {  
     string str(s);  
     removeLeadingBlanks(str);  
     removeTrailingBlanks(str);  
     size_t loc = str.find_first_of(' ');  
     while(loc != string::npos) {  
       str = str.substr(loc);  
       removeLeadingBlanks(str);  
       loc = str.find_first_of(' ');  
     }  
     removeTrailingBlanks(str);  
     return str.length();  
   }  
   void removeLeadingBlanks(string& s) {  
     size_t f = s.find_first_not_of(' ');  
     if(f != string::npos) {  
       s = s.substr(f);  
     } else {  
       s="";  
     }  
   }  
   void removeTrailingBlanks(string& s) {  
     int i = s.length() - 1;  
     for(; i >=0; --i) {  
       if(s[i] != ' ') {  
         break;  
       }  
     }  
     s = s.substr(0, i + 1);  
   }  
 };  

No comments: