228. Summary Ranges

来源:互联网 发布:intent传递int数据 编辑:程序博客网 时间:2024/05/21 06:23

边界条件边界条件边界条件边界条件

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;    }};
0 0
原创粉丝点击