2017校招筆試題

2021-07-22 14:37:55 字數 1494 閱讀 3163

題目:輸入乙個字串從左到右遍歷,如果遇到三個連續相同的子串就將這個子串刪除,並將原串剩下的部分拼接到一起,重複上述過程,直到字串中沒有可以刪除的子串。

eg:

輸入:aaabccdddcb

aabbbabbba

輸出:bb

a重要:從乙個字串中刪除乙個子串,必須將原字串的內容strcpy到開闢的數字中(new char[size]),才能改變原字串。相當於在陣列中刪除一部分。

#include

using namespace std;

#pragma

warning (disable:4996)

char* rmovesubstr(char *str)

//開始刪除

if (count == 3)

begin = str; //從頭開始遍歷

}//退出條件,沒有可刪除的子串了

else

if (count < 3 && *begin == '\0')

return str;

}}int main()

網易

/*思路:為了買盡量少的袋數,所以先要算出最多能買多少袋8個裝的

然後用剩餘的個數/6,看是否能被6整除,如果不能則少拿一袋8個裝的

剩餘的個數+8,再用剩餘的個數/6,以此類推,知道8個裝的個數減到0,

還不能被6整除,則說明沒有合適的購買方法,此時剩餘的個數=總個數*/

int main()

}//剩餘的個數 = 總個數,說明沒找到合適的買法

if (surplus == n)

cout

<< -1

<< endl;

else

return

0;}

滴滴題目:求乙個數的階乘末尾有幾個0

eg:10! = 3628800 輸出:2

#include

#include

using

namespace

std;

//將數字裝換成字串 eg:1234->"1234"

void print(long

long val)

char ch[1024] = ;

//將轉換的字元存入字元陣列中

int len = s.size();

for (int i = 0; i < len; i++)

//從陣列的末尾計算0的個數

for (int i = len - 1; i >= 0; i--)

cout

<< count << endl;

}int main()

樂港2017校招筆試題

前言 今天通知過了筆試,但覺得筆試沒來得及做的題還是要做一下。題目 第二道題,字串的,大意就是,給你個形如a,b,c,ab,bb,cb,ac,bc,cc,aab,bab,cab,abb,bbb,cbb,acb,bcb,ccb.按某種規律排列的無限長的字串陣列,要求 1 給定乙個位置,輸出對應的字串。...

好未來2017校招筆試

一.描述下程序和執行緒的區別 1.當程序發生排程時,它擁有乙個完整地虛擬位址空間,但不同的程序擁有不同的虛擬位址空間 而同一程序內的不同執行緒共享其所屬程序的同一位址空間 3.程序的排程與切換由作業系統核心完成,而執行緒的排程可由作業系統完成,也可由使用者完成 4.在多執行緒作業系統中,執行緒是系統...

京東校招筆試題

題目摘自牛客網 給定字串 ascii碼0 255 陣列,請在不開闢額外空間的情況下刪除開始和結尾處的空格,並將中間的多個連續的空格合併成乙個。例如 i am a little boy.變成 i am a little boy 語言不限,但不要用偽 作答,函式輸入輸出請參考如下的函式原型 void f...