PAT甲级
pat算法刷题
可惜浅灰
Linux、C/C++
展开
-
字符串处理:PAT1050 String Subtraction
解题步骤: 可以使用两层for循环,外层遍历s1字符串取字符,内层遍历s2字符串查看字符是否合法,但这样可能超时。 1、先遍历s2,把其出现的字符都存到一个哈希表中; 2、遍历s1,若字符在哈希表中出现,就删掉;若没有出现,加入到新字符串中。代码实现:#include <iostream>#include <string>using namespace std;#include <unordered_set&...原创 2021-10-03 10:21:10 · 182 阅读 · 0 评论 -
字符串处理:PAT1036 Boys vs Girls
#include <iostream>using namespace std;int main(){ string male_name,male_id; string female_name, female_id; int male_grade, female_grade; int n; cin >> n; string name, gender, id; int grade; for (int i = 0; .原创 2021-10-03 10:02:46 · 185 阅读 · 0 评论 -
字符串处理:PAT1035 Password
解题步骤: 1、问题需要在最后一起输出结果,所以需要用数组把每一个结果逐一存储起来; 2、把每个输入id和对应的字符串存储到数组中,并将字符串进行处理;如果处理后发生改变,保存并计数;否则不做操作。代码实现:#include <iostream>using namespace std;#define maxn 1010string change(string& s){ string str; for (int i =...原创 2021-10-02 09:41:24 · 201 阅读 · 0 评论 -
字符串处理:PAT1006 Sign In and Sign Out
解题步骤: 1、需要记录的是开门和关门id,还有最大关门和最小开门时间用于比对; 2、逐个输入字符串,可以直接用字符串比对的方式去找最大值和最小值,字符串默认的比对方式是从头开始按照字典序,正好符合题目要求。解法2: 记录每个人进出的小时,分钟,秒,依次比对,这样会非常麻烦,但是比直接用字符串比对符合实际。#include <iostream>using namespace std;#if 0#define maxn 16...原创 2021-10-01 11:20:21 · 149 阅读 · 0 评论 -
字符串处理:PAT1005 Spell It Right
解题步骤: 1、数字的位数n很大,只能用字符串存储; 2、逐位把字符串中的字符转为数字后累加,将和值在转成一个新的字符串; 3、把新字符串的每个字符转换为数字后,用英文的形式输出。代码实现:#include <iostream>#include <string>using namespace std;int main(){ string s; cin >> s;...原创 2021-10-01 11:00:32 · 95 阅读 · 0 评论 -
字符串处理:PAT1001 A+B Format
解题步骤: 1、处理输入数据a和b,并加和; 2、将和值转化为字符串类型; 3、建立新字符串,将原字符串从后向前遍历,逐位前插到新字符串中,如果前面还有数字并且写入满3个字符数时插入一个逗号。代码实现:#include <iostream>#include <string>using namespace std;int main(){ int a, b; cin >> a >&...原创 2021-10-01 10:40:43 · 59 阅读 · 0 评论