本文主要是介绍228.Summary Ranges,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Given a sorted integer array without duplicates, return the summary of its ranges.
For example, given [0,1,2,4,5,7]
, return ["0->2","4->5","7"].
注意int与string的转换,以及溢出的问题
class Solution {
public:vector<string> summaryRanges(vector<int>& nums) {int start = 0;int end = 0;vector<string> ret;while(end<nums.size()){if(end < nums.size()-1 && nums[end]+1 == nums[end+1]){++end;}else{stringstream ss;if(end - start>0){ss<<nums[start];ss<<"->";ss<<nums[end];string s = ss.str();ret.push_back(s);}else{ss<<nums[start];string s = ss.str();ret.push_back(s);}start = end+1;end = start;}}return ret;}
};
class Solution {
public:vector<string> summaryRanges(vector<int>& nums) {vector<string> ret;for(int i = 0;i<nums.size();i++){int start = i;while( i+1 < nums.size() && nums[i+1] - nums[i] == 1)i++;int end = i;string s1 = "";stringstream stream;stream<<abs(nums[start]); if(nums[start] >= 0 || nums[start] ==-2147483648)s1 = stream.str()+ s1;elses1 = "-" + stream.str() + s1;string s2 = "";stringstream stream1; stream1<<abs(nums[end]);if(nums[end] >= 0 || nums[end] ==-2147483648)s2 = stream1.str()+ s2;elses2 = "-" + stream1.str() + s2; if(end -start>0){string s = s1 + "->" + s2;ret.push_back(s);}else{string s = s1;ret.push_back(s);}}return ret;}
};
这篇关于228.Summary Ranges的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!