經過連個小時的筆試考試真的發現自己的編碼水平還是不行,感覺都是很簡單的題,但是提交上去之后總是不能夠AC,自己平時寫代碼也都是慢悠悠的寫,沒有注意過時間,經過這次的筆試,發現自己在規定的時間內寫出一些沒有bug代碼,真的很難。
像第一題,我知道該怎么寫,但是寫的時候思路很混亂,有些特殊的時間點也考慮不周全。結果提交了只通過了部分代碼。感覺這次考試用到的數據結構的東西並不是太多,主要就是一些數學題。奈何自己大學不是數學專業的,也怪自己太菜了,平時也沒有總結所學知識的習慣。感覺這次是沒希望了,那么自己接下來應該選擇什么樣的路呢?
~~貼一下自己這兩個小時寫的代碼吧,以后有時間在改正~~
No 1.
#include<iostream> #include<string> #include<cmath> #include<iomanip> using namespace std; int main() { int day, curMin; string time; cin >> day >> time >> curMin; int hh = stoi(time.substr(0, 2)) + 24 * (day - 1); int mm = stoi(time.substr(3, 2)); int totalMin = hh * 60 + mm; int preMin; if (totalMin >= curMin) { preMin = totalMin - curMin; day = preMin / (24*60); hh = (preMin % (24*60)) / 60; mm = (preMin % (24*60)) % 60; } else { preMin = curMin - totalMin; day = 7 - (preMin / (24*60)) % 7; hh = 24 - (preMin % (24*60)) / 60; mm = 60 - (preMin % (24*60)) % 60; } cout << day << endl; cout << setfill('0'); cout << setw(2) << hh << ":" << setw(2) << mm << endl; return 0; }
剛才又看了一些代碼,發現自己真的犯了一個很低級的錯誤,寫變量的時候竟然寫錯了。現在在提交應該就能通過了。
No 2.
#include<iostream> #include<map> #include<vector> using namespace std; int main() { int n; cin >> n; map<int, int> start; map<int, int> end; vector<int> v; int temp; for (int i = 1; i <= n; ++i) { cin >> temp; start[temp] = i; v.push_back(temp); } for (int i = 1; i <= n; ++i) { cin >> temp; end[temp] = i; } int ans = 0; int s, e; for (int i = 0; i < n; ++i) { if (end[v[i]] < start[v[i]]) ans++; else { for (int j = 0; j < i; ++j) { if (end[v[i]] < end[v[j]]) { ans++; break; } } } } cout << ans << endl; return 0; }
No 3.
#include<iostream> #include<cmath> using namespace std; int main() { int n, k; cin >> n >> k; int t = 1; while (1) { int temp = n / pow(k, t-1); if (temp == 0) break; t++; } t--; double d = 1 / k; int x = (t * (1 - d)) / (1 - pow(d, t)); cout << x << endl; return 0; }
No 4.
#include<iostream> using namespace std; int main() { int n; cin >> n; int ans = 3; for (int i = 3; i < n; ++i) { ans = (ans * 3) % 1000000007; } ans = (ans * 2) % 1000000007; cout << ans << endl; return 0; }
No 5.
#include<iostream> #include<vector> #include<string> using namespace std; int main() { int n, k; cin >> n >> k; vector<string> v; vector<string> copy; string temp; for (int i = 0; i < k; ++i) { cin >> temp; v.push_back(temp); } copy = v; int ans = 0; for (int i = 0; i < n; ++i) { cin >> temp; ans = 0; if (temp[0] == '?') { for (int j = 0; j < k; ++j) { string str = temp.substr(1); if (v[j] != "") { while(str.find(v[j]) != string::npos) { ans++; int pos = str.find(v[j]); str = str.substr(pos + v[j].length()); } } } cout << ans << endl; } else if (temp[0] == '+') { int num = stoi(temp.substr(1)) - 1; if (v[num] == "") v[num] = copy[num]; cout << "v[num] = " << v[num] << endl; } else if (temp[0] == '-') { int num = stoi(temp.substr(1)) - 1; v[num] = ""; } } return 0; }
通過這次筆試清楚了自己原來還是那么的菜,自己只會用C++寫着一些代碼還不夠的,還要學習一些Java的知識,因為這些知識就算在筆試中沒有考到,在面試中還是要考的。