您的位置:首页 > 其它

228. Summary Ranges

2016-03-09 20:17 302 查看
边界条件边界条件边界条件边界条件

class Solution {
public:
string int_to_str(int n)
{
if(n==-2147483648) return "-2147483648";
string s;
if(n<0)
{
n=-n;
s.push_back('-');
}
if(n<10) s.push_back('0'+n);
else{
int len=log(n+0.01)/log(10);
for(int j=pow(10,len);j>=1;j/=10)
{
int j0=n/j%10;
s.push_back('0'+j0);
}
}
return s;
}
string int_to_str(int n,int m)
{
string s;
if(n==-2147483648)
{
s+="-2147483648";
}
else
{
if(n<0)
{
n=-n;
s.push_back('-');
}
if(n<10) s.push_back('0'+n);
else{
int len=log(n+0.01)/log(10);
for(int j=pow(10,len);j>=1;j/=10)
{
int j0=n/j%10;
s.push_back('0'+j0);
}
}
}
s.push_back('-');
s.push_back('>');
n=m;
if(n<0)
{
n=-n;
s.push_back('-');
}
if(n<10) s.push_back('0'+n);
else{
int len=log(n+0.01)/log(10);
for(int j=pow(10,len);j>=1;j/=10)
{
int j0=n/j%10;
s.push_back('0'+j0);
}
}
return s;
}

vector<string> summaryRanges(vector<int>& nums) {
vector<string> vs;
if(!nums.size()) return vs;
int l0=nums[0];
for(int i=1;i<nums.size();i++)
{
if((float)nums[i]-nums[i-1]>1)
{
if(l0==nums[i-1])
{
string s=int_to_str(l0);
vs.push_back(s);
}
else
{
string s=int_to_str(l0,nums[i-1]);
vs.push_back(s);
}
l0=nums[i];
}
}
string s;
if(l0==nums[nums.size()-1])
{
string s=int_to_str(l0);
vs.push_back(s);
}
else
{
string s=int_to_str(l0,nums[nums.size()-1]);
vs.push_back(s);
}
return vs;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: