228. 汇总区间(stringstream)

字符串处理:动态规划,双指针,栈,计数,字符串流 

本题要将一个格式化的字符串容器作为答案,可利用双指针和stringstream来进行操作

class Solution {
public:
    vector<string> summaryRanges(vector<int>& nums) {
        int n = nums.size();
        int l = 0, r = 0;
        vector<string> res;
        stringstream ss;
        while(r < n) {
            while(r + 1 < n && nums[r] + 1 == nums[r + 1]) r ++ ;
            if(l != r) {
                ss << nums[l] << "->" << nums[r];
                res.push_back(ss.str());
                ss.str(""); //每次操作完记得清空流内容
            } else {
                res.push_back(to_string(nums[r]));
            }
            r ++ ;
            l = r;
        }

        return res;
    }
};

 

posted @ 2023-08-26 13:34  深渊之巅  阅读(4)  评论(0编辑  收藏  举报