感觉这次笔试考的算法都比较简单,主要是输入输出
1、两数之和 要求输入一个有序数组和一个数字target,求数组中所有两个加起来为target的组合
这道题主要是输入里有方括号和逗号,要想办法处理掉
输入:[1,3,5,7,9,11]
输出:1,9
3,7
#include<iostream>
#include<vector>
#include<cstdio>
#include<sstream>
#include<string>
using namespace std;
int main() {
string str;
cin >> str;
//去除[]
str = str.substr(1);
str.pop_back();
int target = 0;
cin >> target;
vector<int> nums;
string temp;
stringstream ss(str);//将str的内容输入数据流中
while (getline(ss, temp, ',')) {//ss为输入流
nums.push_back(stoi(temp));
//转换成int stoi需要包含头文件#include<string> atoi需要包含头文件#include<cstdlib>
}
int first = 0, last = nums.size()-1;
while (first < last ) {
int sum = nums[first] + nums[last];
if (sum == target) {
cout << nums[first++] << ',' << nums[last--] <&