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。