Rrui的Leetcode刷题笔记(十)

482. License Key Formatting

class Solution {
public:
    string licenseKeyFormatting(string S, int K) {
        
        string s,p="-";
        int sum=0;
        
        for(int i=S.size()-1;i>=0;i--)
        {
            if(S[i]=='-')
                continue;                   
            
            if((S[i]>='A'&&S[i]<='Z')||(S[i]>='0'&&S[i]<='9'))
                s+=S[i];
            else s.push_back(S[i]-32);
            sum++;
            if(sum==K)
            {
                s+=p;
                sum=0;                
            }
        }
        if(s.back()=='-')
            s.erase(s.begin()+s.size()-1);
        reverse(s.begin(),s.end());
        return s;
    }
};

注:题目较简单,从后到前遍历一遍后再翻转即可,时间复杂度O(n),空间复杂度O(n)。超过98.81%,用时20min(理解题意理解错了。。除了第一个组合我以为第一个组合不用改,结果空在那想。。)。

485. Max Consecutive Ones

class Solution {
public:
    int findMaxConsecutiveOnes(vector<int>& nums) {
        
        int max=0,sum=0;
        for(int i=0;i<nums.size();i++)
        {
            if(nums[i]==0)
                sum=0;
            else
            {
                sum++;     
                max=max>sum?max:sum;
            } 
        }
        return max;
    }
};

注:题目较简单,从前到后遍历一遍即可,时间复杂度O(n),空间复杂度O(1)。超过53.76%,用时5min。

猜你喜欢

转载自blog.csdn.net/Rrui7739/article/details/84435235