日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

某为线上笔试心得

發布時間:2023/11/27 生活经验 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 某为线上笔试心得 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前投了某為的軟件開發崗,順利通過簡歷篩選后參加了今晚的線上筆試。總的來說,某為的題并不難,總共三道編程題,粗暴但不簡單。筆試期間腦子略有點發昏,導致第二道編程題栽在了一個小問題上,在交卷后左思右想在Linux上又重新寫出程序編譯,才發現問題所在。大概最大的感受就是遺憾吧。

某為的第一道筆試題是輸入長度未知的字符串,然后去重,不改變排列順序輸出字符串(字符串中不包含空格)。這一題比較簡單,考慮到c語言用char*指針作為字符串時,在讀取字符串時需要一個特殊字符'\0'來標記指針的結束位置,也就是通常認為的字符串結束標記。而c++語言則是面向對象的,長度信息直接被存儲在了對象的成員中,讀取字符串可以直接根據這個長度來讀取,所以就沒必要需要結束標記了。可以將string對象中重復的字符用'\0'代替,編寫程序:

#include <iostream>
#include <string>using namespace std;
int main()
{int len;string str;cout << "輸入字符串:";cin >> str;len = str.size();for(int i=0;i<len-1;i++){if(str[i]!='\0'){for(int j=i+1;j<len;j++){if(str[i]==str[j]){str[j]='\0';}}}else{continue;}}cout << "去重后:" << str <<endl;return 0;
}

編譯和調試結果:

某為的第二道筆試題的大意是12點到20點(分為8個整點時間區間)之間會有客人到來以及離去(到來和離去都看做整點,客人需在12點之后到來,20點之前離開),統計所有客人停留的時間長度(輸入不多于100個客人的到達整點時間和離開整點時間,以“-1 -1”結束輸入),最終輸出每個時間區間客人的最大數目。題目意思有點繞,但是讀明白就能理解,重點是以每個客人停留的時間作為循環的起點和重點,對于這段時間內的區間各加上一個“1”。

那么,可以編寫程序:

#include<iostream>
#include<cstdio>
#include<cstring>using namespace std;
int main(){int a[100][2]; //定義最大輸入容量int group[8]; //定義8個整數區間int count = 0; //定義實際輸入“客人”個數的統計參數int flag = 1; //定義了兩次跳出循環的信號參數for(int i=0; i<100; i++){ //將輸入信息循環存儲到數組中for(int j=0; j<2; j++){scanf("%d",&a[i][j]);if(a[i][j] == -1){flag = 0;break;}}if(flag == 0){break;}else{count++;}}for(int i=0; i<8; i++){ //對group數組元素進行初始化group[i]=0;}for(int i=0; i<count; i++){for(int j=a[i][0]-12; j<a[i][1]-11; j++){ //循環遍歷時間段內所有區間,對應的group加1group[j]++;}}cout << "[12,13):" << group[0] << endl;cout << "[13,14):" << group[1] << endl;cout << "[14,15):" << group[2] << endl;cout << "[15,16):" << group[3] << endl;cout << "[16,17):" << group[4] << endl;cout << "[17,18):" << group[5] << endl;cout << "[18,19):" << group[6] << endl;cout << "[19,20):" << group[7] << endl;return 0;
}

調試結果:

其中,第一次調試結果中出現數字亂碼是因為數組沒有進行初始化賦值。

在筆試的過程中,對于for(int j=a[i][0]-12; j<a[i][1]-11; j++)語句,我不慎將二維數組的下標起點記錯了,即for(int j=a[i][1]-12; j<a[i][2]-11; j++),導致程序始終無法通過編譯。提示存在段錯誤(堆棧或者數組存在溢出)。

總結

以上是生活随笔為你收集整理的某为线上笔试心得的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。