LeetCode 769. Max Chunks to Make Sorted I调试程序-wowAC

此代码为了方便大家调试用,使用的时候直接用自己的Solution类覆盖代码中的类,程序的输入文件路径默认在桌面的data_in.txt,使用的时候直接将LeetCode的case复制进文件即可。如下图所示。

image.png

#include <iostream>
#include <fstream>
#include <string.h>
#include <algorithm>
#include <cstdlib>
#include <vector>
#include <stack>
#include <sstream>

using namespace std;

/***************改成自己的代码****************/
class Solution {
public:
    int maxChunksToSorted(vector<int>& arr) {
        int maxx = 0, ans = 0;
        for(int i=0; i<arr.size(); i++) {
            maxx = max(maxx, arr[i]);
            if(i == maxx) ans++;
        }
        return ans;
    }
};
/***************到此为止****************/


/***************不要修改这些代码****************/

void split_string(const string& s, const string& c, vector<string> &v){
    string::size_type pos1, pos2;
    pos2 = s.find(c);
    pos1 = 0;
    while(string::npos != pos2){
        v.push_back(s.substr(pos1, pos2-pos1));

        pos1 = pos2 + c.size();
        pos2 = s.find(c, pos1);
    }
    if(pos1 != s.length())
        v.push_back(s.substr(pos1));
}

vector<int> get_array_int(string line) {
    vector<int> res;
    vector<string> str_array;
    int i = 0, j = line.length();
    while(i<line.length() && line[i]!='[') i++;
    while(j>=0 && line[j]!=']') j--;
    line = line.substr(i+1, j-i-1);

    split_string(line, ",", str_array);
    for(int i=0; i<str_array.size(); i++) {
        res.push_back(atoi(str_array[i].c_str()));
    }
    return res;
}

/***************完毕****************/


int main()
{
    //改成自己的输入路径,注意用双斜杠分割 默认输入文件为桌面的data_in.txt
    fstream fin("C:\\Users\\xingxing\\Desktop\\data_in.txt");
    string line;
    Solution solu;
    int kase = 1;
    while(getline(fin, line)) {
        if(line.empty()) continue;
        vector<int> ints;
        ints = get_array_int(line);
        cout<<"case"<<kase++<<": "<<endl;
        cout<<solu.maxChunksToSorted(ints)<<endl;
    }
    return 0;
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注