王道机试 第四章 字符串 4.2 字符串处理

本文介绍了C++中处理字符串的技巧,包括特殊乘法、密码翻译、简单密码等字符串操作,并给出了北京大学和清华大学复试上机题的解题思路和示例代码,涉及getline、数组映射、字符统计等功能。
摘要由CSDN通过智能技术生成

王道机试 第四章 字符串 4.2 字符串处理

例题4.1 特殊乘法(清华大学复试上机题)
  • 解题思路:

本题数据范围大于 1 0 9 10^9 109,可用string类型接收较大的整形数。

int类型只能表示到 1 0 9 10^9 109,而long long 可以表示到 1 0 18 10^{18} 1018

所以一般当两个数据范围都为 1 1 1~ 1 0 9 10^9 109的数相加时,其和sum要定义为long long类型,防止数据溢出。

C++代码如下:

#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
#include <cstring>
using namespace std;

int main()
{
   
	string s1, s2;
	cin >> s1 >> s2;
	int n = s1.size(), m = s2.size();
	long long sum = 0;
	for (int i = 0; i < n; i++){
   
		for (int j = 0; j < m; j++){
   
			sum += (long long)(s1[i] - '0') * (long long)(s2[j] - '0');
		}
	}
	cout << sum << endl;
	return 0;
}
例题4.2 密码翻译(北京大学复试上机题)
  • 解题思路:
    本题的关键在于如何读取一行字符(字符串间有空格,不能直接cin >> string)

- C++读取一行字符(包含空格)的方法

读取一行字符(字符串间有空格,不能直接cin >> string)

  • 使用 getline(cin, str, '结束符')
    其中,
  • str为std::string类型,可包含空格;
  • 结束符代表每行的终止标志(读到哪个字符停止),一般默认为回车符’\n’。如果默认,则可使用getline(cin, str)简化输入。

本题的C++代码如下:

#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值