2020.11.15 天梯赛模拟赛
7-89 谷歌的招聘 (20分)
做法:参考了网上大佬的做法,用substr进行切片,再写一个函数判断素数即可
//去吧马里奥!!把AC公主救出来!!! // ******** // ************ // ####....#. // #..###.....##.... // ###.......###### // ........... // ##*####### // ####*******###### // ...#***.****.*###.... // ....**********##..... // ....**** *****.... // #### #### // ###### ###### #include<iostream> #include<algorithm> #include<cstdio> #include<cmath> #include<string> #include<map> #include<sstream> #include<cstring> #include<vector> #include<iomanip> #include<queue> #include<set> #define LL long long #define _64 __int64 const double PI = atan(1.)*4.; const double EPS = 1e-6; const int INF = 0x3f3f3f3f; using namespace std; int isprime(int a){ if(a == 0){ return 0; } if(a == 1){ return 0; } for (int i = 2; i * i <= a;i++){ if(a%i == 0){ return 0; } } return 1; } int main(){ int l, k; cin >> l >> k; string s; cin >> s; string num; int flag = 0; for (int i = 0; i <= l - k;i++){ num = s.substr(i, k); int a = stoi(num); if(isprime(a) == 1){ cout << num << endl; flag = 1; break; } } if(flag == 0){ cout << 404 << endl; } }
7-88 出栈序列的合法性 (25分)
做法:用一个栈存堆砌的数据,之后把数输进一个数组,将数和下标对应比较,或者是看栈顶元素是否能对上,对上就输出,对不上就不对了,如此如果出现对不上或者结束后栈里还有元素就no
代码:
#include<iostream> #include<bits/stdc++.h> using namespace std; stack <int> s; int temp1,temp2; int b[200005]; int main(){ int m,n,k; cin >> m >> n >> k; while(k--){ while(s.empty() == 0){ s.pop(); } temp1 = temp2 = 1; for(int i = 1;i <= n;i++){ cin >> b[i]; } int flag = 1; while(1){ if(temp1 == b[temp2]){ temp1++; temp2++; // }else if(s.empty() == 0 && s.top() == b[temp2]){ s.pop(); temp2++; }else{ if(temp1 > n){ break; } s.push(temp1); temp1++; if(s.size()>= m){ flag = 0; break; } } } if(flag == 0 || s.empty() == 0){ cout << "NO" << endl; }else{ cout << "YES" << endl; } } }

2020.11.15 天梯赛模拟赛
浙公网安备 33010602011771号