抠了好长时间, 也不知道为什么4, 5没有读入
把当成string,每次读完一个字符串(数字)就转化int放入vector, 读字符串的条件是直到遇到, 或者[, ]
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
string str;
cin >> str;
vector <int> v;
string temp = "";
for (int i = 2; i < str.length(); i++)
{
if ( str[i] != ',' && str[i] != ']' && str[i] != '[')// || --> &&
{
temp += str[i];
}
else
{
if (temp != "")
{
v.push_back(stoi(temp));
}
temp = "";
}
}
int sz = v.size();
int cnt = 0;
int n = v[sz - 2];
int m = v[sz - 1];
int total = sz - 2;
cout << "[";
bool flag = false;
int start = 0;
int end = 0;
for (int i = 0; i < n; i++)
{
if (i % 2 == 0)
{
start = i * m;
end = (i + 1) * m - 1;
for (int k = start; k < end; k++)
{
if (!flag)
{
cout << v[k];
flag = true;
}
else
{
cout << "," << v[k];
}
}
}
else
{
start = (i + 1) * m - 1;
end = i * m;
for (int k = start; k > end; k--)
{
cout << "," << v[k];
}
}
}
cout << "]";
}