東方財富 2020 春季校園招聘後端開發在線筆試【Python】【C++】【字符串】【動態規劃】
一、單選題
- 一共有 256 個結點的二叉樹高度最小是多少:8。
- 讀程題,選出正確的程序輸出結果。
- 不記得了。
二、不定項選擇
- 哪些屬於設計模式。
- 不記得了。
三、填空題
- 20*6 = 140 是幾進制:八。
- 給定二叉樹的前序和中序遍歷,寫出後序遍歷。
- 305個同學,1-2 報數,去掉報 2 的,再 1-2 報數,如此往復,最後剩下的是原來第幾個同學。(這題沒做出來)。
- 不記得了。
四、編程題
問題一:字符串判斷
str1 和 str2 組合之後變成 str3,但是相對順序不能改變。
示例:
輸入:abc defg adebfcg
輸出:TRUE
思路
字符串
直接單獨判斷是否在 str3 中。
考試的時候因爲不太清楚 Python 怎麼直接把輸入的一長串字符串根據空格分割成三個字符串,所以這題並沒有做出來。
後來改用 C++ 寫了下,還是有問題。所以代碼不確定對。
Python3代碼
def JudgeString(str:str) -> bool:
new_list = str.split(' ')
str1 = list(new_list[0])
# print(str1)
str2 = list(new_list[1])
# print(str2)
str3 = list(new_list[2])
# print(str3)
m, n, length = len(str1), len(str2), len(str3)
if m + n != length:
print("FALSE")
return
for i in str1:
if i in str3:
str3.remove(i)
else:
print("FALSE")
return
for i in str2:
if i in str3:
str3.remove(i)
else:
print("FALSE")
return
print("TRUE")
return
if __name__ == "__main__":
# str1 = "aabcc"
# str2 = "dbbca"
# str3 = "aadbbcbcac"
str = input()
# str2 = input()
# str3 = input()
JudgeString(str)
問題二:股票問題
思路
動態規劃
參考 LeetCode 0123: https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iii/
一模一樣的題目,昨天剛做過,上面那道苦於 Python 的輸入格式,所以這題改用 C++ 寫了下代碼,過了。
具體分析可以參考我的這篇博客:LeetCode | 0123. Best Time to Buy and Sell Stock III買賣股票的最佳時機 III【Python】
空間複雜度: O(1)
C++代碼
#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int n;
cin >> n;
int prices[101];
for(int i = 0; i < n; ++i){
cin >> prices[i];
}
int dp_i_1_0 = 0;
int dp_i_2_0 = 0;
int dp_i_1_1 = -0x7fffff;
int dp_i_2_1 = -0x7fffff;
//int dp_i_0_0 = 0;
//int dp_i_0_1 = 0;
for(int i = 0; i < n; ++i){
dp_i_2_0 = max(dp_i_2_0, dp_i_2_1 + prices[i]);
dp_i_2_1 = max(dp_i_2_1, dp_i_1_0 - prices[i]);
dp_i_1_0 = max(dp_i_1_0, dp_i_1_1 + prices[i]);
dp_i_1_1 = max(dp_i_1_1, -prices[i]);
}
cout << dp_i_2_0;
return 0;
}
五、感想
還是習慣 LeetCode
這種給定函數的輸入參數及類型、輸出參數類型,只需實現函數的功能,而不需在意輸入格式。
最近都是用 Python
刷的 LeetCode
,今天 C/C++
寫起來感覺生疏了很多。
前段時間在 拉勾
上投了幾家招 Python
的,簡歷都沒過,還是要官網校招一個個申請容易通過啊,雖然填信息麻煩了一點。
比起前面幾場還沒怎麼準備筆試就參加了,結果可想而知,這次準備還行。
LeetCode
還要繼續刷,希望早點收到 Dream Offer!