PAT甲级
微躺青年
这个作者很懒,什么都没留下…
展开
-
PAT甲级1001
分析:注意输入 -100000 1 ,输出结果是 -99,999 ;是从后往前每三位有一个逗号的。len%3只有0,1,2三种可能,假设len%3==2,那么我们知道对于一个字符串而言,无论第一个字符是否是‘—’,逗号都是在输出第 2+3k (k=0,1,2,3…)个字符时相应输出,而2+3k 就是 (i+1)%3同理,其他情况也是这个道理,代码虽短,无需再去使用栈解决...原创 2019-08-05 23:15:00 · 152 阅读 · 0 评论 -
PAT甲级1032,链表
分析:暴力解法会超时,最好使用一个bool型的数组,记录哪些节点地址出现过#include<bits/stdc++.h>using namespace std;int main(){ int next[100000]; char data[100000]; bool h[100000]; int p1, p2, n; cin >&g...原创 2019-09-02 19:55:57 · 201 阅读 · 0 评论 -
PAT甲级1112,字符串
#include<bits/stdc++.h>using namespace std;int main(){ string input,output=""; int k; cin>>k>>input; int hashTable[128]={0},isout[128]={0};//hashTable为1表示按键正常;isou...原创 2019-08-26 19:26:09 · 229 阅读 · 0 评论 -
PAT甲级1108,字符串
#include<bits/stdc++.h>using namespace std;int main(){ int n,num=0; cin>>n; double sum=0.0; char a[50],b[50]; while(n--){ scanf("%s",a); double k=0....原创 2019-08-26 18:31:24 · 211 阅读 · 0 评论 -
PAT甲级1077,字符串
#include<bits/stdc++.h>using namespace std;int main(){ int n; string s1; cin>>n; getchar();//吸收换行符 getline(cin,s1); for(int k=1;k<n;k++){ string s2;...原创 2019-08-26 18:11:49 · 125 阅读 · 0 评论 -
PAT甲级1035字符串
#include<bits/stdc++.h>using namespace std;int main(){ int n; vector<string> v; cin>>n; for(int i=0;i<n;i++){//注意这里不能用while(n--),因为后面还会用到n string name,ac...原创 2019-08-26 11:19:56 · 137 阅读 · 0 评论 -
PAT甲级1005,字符串
#include<bits/stdc++.h>using namespace std;int main(){ string str[10]={"zero","one","two","three","four","five","six","seven","eight","nine"}; string t; cin>>t; int sum=...原创 2019-08-26 10:28:42 · 172 阅读 · 0 评论 -
PAT甲级1022,map和模拟
分析:1、对除了id之外的其他信息都建立一个map<string, set>,把相应的id插入对应搜索词的map的集合里,形成一个信息对应一个集合,集合里面是复合条件的书的id2、因为对于输入的关键词(可以重复,算是书本对应的tag标签吧~)没有给定关键词的个数,可以使用while(cin >> s)并且判断c = getchar(),c是否等于\n,如果是再退出循环~...原创 2019-08-17 21:47:23 · 172 阅读 · 0 评论 -
PAT甲级1092,散列
分析:题目不难,读懂就行#include<bits/stdc++.h>using namespace std;int main(){ string s1,s2; cin>>s1>>s2; map<char,int> m; for(int i=0;i<s1.size();i++){ m[s1...原创 2019-08-16 16:42:47 · 134 阅读 · 0 评论 -
PAT甲级1048,散列
分析:如果用散列解决的话,一定要考虑到是否存在两个相同的元素相加的和等于 m;但是如果使用二分查找的思想的话,就不用分类考虑这一点。我的散列解决办法:#include<bits/stdc++.h>using namespace std;int main(){ int n,m; cin>>n>>m; int a[n]; m...原创 2019-08-16 14:35:13 · 203 阅读 · 0 评论 -
PAT甲级1041,散列
分析:注意点已注解#include<bits/stdc++.h>using namespace std;int main(){ int n; scanf("%d",&n); int a[n];//如果直接开10000大小的数组空间会提示段错误 map<int,int> m; for(int i=0;i<n;i++...原创 2019-08-16 13:50:07 · 124 阅读 · 0 评论 -
PAT甲级1084,散列
分析:和乙级旧键盘那题一样#include<bits/stdc++.h>using namespace std;int main(){ string s1,s2; cin>>s1>>s2; set<char> s; for(int i=0;i<s2.size();i++){ s.inser...原创 2019-08-16 12:05:08 · 171 阅读 · 0 评论 -
PAT甲级1050,散列
分析:使用好stl 即可快速解题#include<bits/stdc++.h>using namespace std;int main(){ string s1,s2; getline(cin,s1); getline(cin,s2); set<char> s; for(int i=0;i<s2.size();i++){...原创 2019-08-15 13:05:23 · 113 阅读 · 0 评论 -
PAT甲级1076
题目大意:第一行输入N和L,分别是N名用户,以及一条微博最多转发的次数L(即为图中的层数);接下来N行,每一行第一个数字是每个用户关注的人数num,再依次输入关注用户的编号;最后一行第一个数字是发微博的用户数K,随后依次输入这K个用户的编号。要求换行输出最大的转发次数。注意每名用户只可以转发一次相同的微博,并且同一条微博,最多只可以被L人转发。分析:首先想到使用BFS遍历图,并记录层数的方...原创 2019-08-06 13:56:39 · 191 阅读 · 0 评论 -
PTA甲级1115,Counting Nodes in a BST
分析:分为建树和DFS两步进行,注意使用数组记录每一层的结点数#include<bits/stdc++.h>using namespace std;struct Node{ int val; Node *left, *right; Node(int e){ this->val = e; }};int levelNum[...原创 2019-10-04 19:27:41 · 121 阅读 · 0 评论