输入形式:
输入的数据在nums中保存
1,2,3,4,60,70,5
# include2、第二种情况:# include # include using namespace std; int main() { string s; cin >> s; int start = 0; int num = 0; vector nums; for (int i = 0; i < s.size(); i++) { if (s[i] == ',') { string temp = s.substr(start, i - start); nums.push_back(atoi(temp.c_str())); num++; start = i + 1; } } string temp = s.substr(start, s.size() - start + 1); nums.push_back(atoi(temp.c_str())); for (int i = 0; i < nums.size(); i++) { cout << nums[i] << " "; } system("pause"); return 0; }
输入形式:
在nums 数组中保存
8 1,2,30,100,50,2,7,5
输出形式:
1 2 30 100 50 2 7 5
代码:
# include3、第三种情况:# include # include using namespace std; int main() { int n; cin >> n; string s; cin >> s; int start = 0; int num = 0; vector nums; for (int i = 0; i < s.size(); i++) { if (s[i] == ',') { string temp = s.substr(start, i - start); nums.push_back(atoi(temp.c_str())); num++; start = i + 1; } if (num == n - 1) { string temp = s.substr(start, s.size() - start + 1); nums.push_back(atoi(temp.c_str())); break; } } for (int i = 0; i < n; i++) { cout << nums[i] << " "; } system("pause"); return 0; }
非重叠区间的总长度
在nums 二维数组中保存
# include# include # include # include using namespace std; static bool cmp(vector & a, vector & b) { if (a[0] == b[0]) { return a[1] < b[1]; } return a[0] < b[0]; } int main() { int n; cin >> n; vector str; for (int i = 0; i < n; i++) { string mys; cin >> mys; str.push_back(mys); } vector > nums; int t = 0; while (t < n) { vector q; string s = str[t]; int start = 0; int num = 0; for (int i = 0; i < s.size(); i++) { if (s[i] == ',') { string temp = s.substr(start, i - start); q.push_back(atoi(temp.c_str())); num++; start = i + 1; } if (num == 1) { string temp = s.substr(start, s.size() - start + 1); q.push_back(atoi(temp.c_str())); break; } } t++; nums.push_back(q); } sort(nums.begin(), nums.end(), cmp); int sum = 0; int l = nums[0][0]; int r = nums[0][1]; for (int i = 1; i < nums.size(); i++) { int l1 = nums[i][0]; int r1 = nums[i][1]; if (r <= l1) { sum += (r - l); l = l1; r = r1; } else if (r > l1 && r1 > r) { sum += (l1 - l); l = r; r = r1; } else if (r > l1 && r1 <= r) { sum += (l1 - l); l1 = r1; r = r; } } sum += r - l; cout << sum << endl; system("pause"); return 0; }



