1. 程式人生 > >2018華為上機測試第二批

2018華為上機測試第二批

比較 \n fst sta mps pos set mini AC

  • AC三題,都比較基礎主要考慮細節
    註意
while (cin >> num)
    {
        
        vec.push_back(num);
        if (cin.get() == '\n')
            break;

    }
  • 貌似可能只有華為編程題才合適我了
#include<iostream>
#include<math.h>

#include <vector>
#include <string>
#include <deque>
#include <stack>
#include <queue> #include <map> #include <unordered_map> #include <set> #include <unordered_set> #include <algorithm> #include <functional> #include <numeric> //accmulate #include <fstream> #include <iomanip> //setprecision() setw() using namespace
std; #define cin infile //一定不能再oj系統中,有錯,導致超時等!!! //C++文件輸入 ifstream infile("in.txt", ifstream::in); #include <limits> #define INT_MIN (-2147483647 - 1) /* minimum (signed) int value */ #define INT_MAX 2147483647 /* maximum (signed) int value */ #if 1 long long vec[21] = {0}; long
long sum[17] = { 0 }; int main() { for (int i = 0; i <= 20; i++) { cin >> vec[i]; } for (int i = 0; i <= 21 - 4; i++) { sum[i] = vec[i] + vec[i + 1] + vec[i + 2] + vec[i + 3]; } long long maxSum = 0; int index = 0; for (int i = 0; i <= 17;i++) { if (sum[i]>maxSum) { maxSum = sum[i]; index = i; } } cout << index << endl; return 0; } //滑動遍歷一次,結果只有80%,不知道為什麽? int main() { for (int i = 0; i <= 20; i++) { cin >> vec[i]; } long long sum = vec[0] + vec[1] + vec[2] + vec[3]; long long maxsum = 0; int index = 0; for (int i = 1; i <= 21 - 4; i++) { long long temp = sum - vec[i - 1] + vec[i + 3]; if (temp > maxsum) { maxsum = temp; index = i; } sum = temp; } cout << index << endl; return 0; } #endif #if 1 #define max(a,b) (((a) > (b)) ? (a) : (b)) long long GetMaxSubsum(vector<long long > vec_) { long long tempSum = 0; long long ret_sum = 0; if (vec_.size() <= 0) { return 0; } else { tempSum = vec_[0]; ret_sum = vec_[0]; for (int i = 1; i < vec_.size(); i++) { tempSum = (tempSum < 0) ? vec_[i] : (tempSum + vec_[i]); ret_sum = max(tempSum, ret_sum); } return ret_sum; } return ret_sum; } int main() { long long num; long long ret = 0; vector<long long > vec; while (cin >> num) { vec.push_back(num); if (cin.get() == '\n') break; } ret = GetMaxSubsum(vec); cout << ret << endl; return 0; } #endif #if 1 const int index[26] = { 16, 22, 4, 17, 19, 24, 20, 8, 14, 15, 0, 18, 3, 5, 6, 7, 9, 10, 11, 25, 23, 2, 21, 1, 13, 12 }; int main() { string str; getline(cin, str); string output; for (int i = 0; i < str.size(); i++) { if (str[i] >= 65 && str[i] <= 90) { str[i] = index[str[i] - 65] + 65; } else if (str[i] >= 97 && str[i] <= 122) { str[i] = index[str[i] - 97] + 97; } } cout << str << endl; return 0; } #endif

2018華為上機測試第二批