第一题 ``` cpp #include <iostream> #include <vector> #include <string> #include <map> using namespace std; int slideWindow(const vector<int>& v) {     int cnt = 0;     int s = v.size();     for (int left = 0, right = 0; right < s; right++) {         if (v[right] == 0) {             left = right++;             continue;         }         int tL = left;         while (right - tL + 1 >= 5) {             int tmp = 1;             for (int l = tL; l <= right; l++) tmp *= v[l];             cnt += tmp;             tL++;         }     }     return cnt; } int main() {     int T = 0;     std::cin >> T;     while (T--) {         int num = 0;         cin >> num;         vector<int> v(14, 0);         while (num--) {             string t;             cin >> t;             int i = atoi(t.c_str());             if (i <= 10 && i >= 2)                 v[i]++;             else if (t == "A")                 v[t[0] - 'A' + 1]++;             else if (t == "J")                 v[11]++;             else if (t == "Q")                 v[12]++;             else v[13]++;                  }         std::cout << slideWindow(v) << std::endl;     } } ``` 第二题 ``` cpp #include <iostream> #include <string> #include <vector> #include <algorithm> using namespace std; string intToBin(int num) {     //if (num == 0) return "0";     string s(10, '0');     int i = 0;     while (num) {         int a = num & 1;         num >>= 1;         s[i++] = a + '0';     }     return s; } int binToInt(string& s) {     int ans = 0;     for (int i = 0; i < s.size(); i++) {         ans += (s[i] - '0') * pow(2, i);     }     return ans; } string Result(string& num) {     //if (num == 0) return "0";     string str = "";     int p = num.size();     while (p >= 0) {         int begin = p - 3 > 0 ? p - 3 : 0;         int end = p-1;         p -= 3;         string s1(num.substr(begin, end - begin + 1));         int n1 = atoi(s1.c_str());         str += intToBin(n1);     }     vector<string> vecStr;     int i = 0;     while(i < str.size()) {         string s;         int j = 5;         while (i < str.size() && j--) {             s.push_back(str[i++]);         }         vecStr.push_back(s);     }     string ret = "";     for (auto& v : vecStr) {         int num = binToInt(v);         if (num < 10) ret += num + '0';         else ret += 'A' + num - 10;     }     reverse(ret.begin(), ret.end());     i = 0;     while (ret[i] == '0') {         i++;     }     return ret.substr(i); } int main() {     int T = 0;     while (cin >> T) {         while (T--) {             string num;             cin >> num;             std::cout << Result(num) << std::endl;         }     } } ```
点赞 7

相关推荐

面试拷打成m:我感觉他说的挺对的,感觉我找不到工作也要去送外卖了,至少饿不死
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务