杂:秋招笔试整理

编程题

ACM模式输入输出

每次处理输入输出都是浪费时间,提前一次写好。
ACM模式输入输出攻略 | C++篇
python输入输出
牛客输入输出练习

python

输入格式

1 2 3 4

处理输入

line=list(map(int,input().strip().split()))
print(line)

输入格式

2 3
1 2 3
1 2 3

处理输入

n,m = map(int,input().strip().split())
lis=[]
for i in range(n):
    tmp=list(map(int,input().split()))
    lis.append(tmp)
print(lis)

输入格式

1 2 3
4 5 6 7
8 9

处理输入

'''
多行输入:
不指定输入大小
'''
try:
    lis=[]
    while True:
        line = input().strip()
        if line == '':
            break
        lines = list(map(int,line.split()))
        lis.append(lines)
    print(lis)
except:
    pass

固定数目的一维数组

输入格式

3
1 2 3

3 1 2 3

第一个3代表数据个数

处理输入

int n;
cin >> n; // 读入数组大小
vector<int> nums(n); // 创建固定大小vector
for (int i=0; i<n; i++){
	cin >> nums[i}; // 依次读入
}

不固定数目的一维数组

输入格式

1 2 3 4

处理输入

vector<int> nums;
int num;
while(cin >> num){
	nums.push_back(num);
	if(getchar()= '\n'){
		// 读到换行就结束
		break;
	}
}

二维数组

输入格式

2 3
1 2 3
1 2 3

处理输入

int m; // 2行
int n; // 3列
cin >> m >> n;
vector<vector<int>> matrix(m, vector<int>(n));
for(int i=0; i<m; i++){
	for(int j=0; j<n; j++){
		cin >> matrix[i][j];
	}
}

逗号隔开数据

输入格式

2 3
1,2,3
1,2,3

处理输入

int m; // 接收行数
int n; // 接收列数

cin >> m >> n;

vector<vector<int>> matrix(m);

for(int i = 0; i < m; i++) {
    // 读入字符串
	string s;
	getline(cin, s);
	
	// 将读入的字符串按照逗号分隔为vector<int>
	vector<int> vec;
	int p = 0;
	for(int q = 0; q < s.size(); q++) {
		p = q;
		while(s[p] != ',' && p < s.size()) {
			p++;
		}
		string tmp = s.substr(q, p - q);
		vec.push_back(stoi(tmp));
		q = p;
	}
	
	//写入matrix
	matrix[i] = vec;
	vec.clear();
}

字符串

输入格式

abc

处理输入

string s;
cin >> s;

固定数目多个字符串

输入格式

3 abc ab a

处理输入

int n;
cin >> n; // 读入3,说明字符串数组的大小是3
vector<string> strings(n); // 创建大小为3的vector<string>
for(int i = 0; i < n; i++) {
	cin >> strings[i];
}

不固定数目多个字符串

输入格式

abc ab a d
vector<string> strings;
string str;
while(cin >> str) {
	strings.push_back(str);
	// 读到换行符,终止循环
	if(getchar() == '\n') {
		break;
	}
}

字符串转整数数组

输入格式

11,22,3,4
vector<int> vec;

// 读入字符串
string s;
getline(cin, s);

// 将读入的字符串按照逗号分隔为vector<int>
	int p = 0;
	for(int q = 0; q < s.size(); q++) {
		p = q;
		while(s[p] != ',' && p < s.size()) {
			p++;
		}
		string tmp = s.substr(q, p - q);
		vec.push_back(stoi(tmp));
		q = p;
	}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值