2013 華為校招機試題

2021-09-09 01:22:16 字數 1282 閱讀 7934

第一題

刪除字串中所有給定的子串(40分)

問題描述:

在給定字串中查詢所有特定子串並刪除,如果沒有找到相應子串,則不作任何操作。

要求實現函式:

int delete_sub_str(const char *str, const char *sub_str, char *result_str)

【輸入】 str:輸入的被操作字串,sub_str:需要查詢並刪除的特定子字串

【輸出】 result_str:在str字串中刪除所有sub_str子字串後的結果

【返回】 刪除的子字串的個數

注:i、子串匹配只考慮最左匹配情況,即只需要從左到右進行字串匹配的情況。比如:

在字串"abababab"中,採用最左匹配子串"aba",可以匹配2個"aba"字串。如果

匹配出從左到右位置2開始的"aba",則不是最左匹配,且只能匹配出1個"aba"字串。

ii、輸入字串不會超過100 bytes,請不用考慮超長字串的情況。

示例輸入:str = "abcde123abcd123"

sub_str = "123"

輸出:result_str = "abcdeabcd"

返回:2

輸入:str = "abcde123abcd123"

sub_str = "1234"

輸出:result_str = "abcde123abcd123"

返回:0

方法解析:c語言忘了差不多了,用了c++的string型別的substr()和erase()函式,還是比較簡單的,**如下:

1 #include "

stdafx.h

"2 #include

3 #include 4

using

namespace

std;

5int delete_sub_str(const

char *str, const

char *sub_str,char *result_str)617

if (len > l) //

子串長度大於所給字串

1822

for (int i = 0; i < s_str.size() - len+1; i++)

2331

}32 cout << result_str <33return

num;34}

35int _tmain(int argc, _tchar*ar**)

36

2013亞馬遜校招機試題A

題目沒複製下來,憑印象寫的。刪除 中的的注釋。注釋分兩種,和 字串 現的注釋符號不能被當作注釋。解題思路 以前編譯原理課做過類似的程式,分出幾個狀態,並做狀態轉移判斷即可。stringbuilder中存放返回的字串。動作a表示新增當前字元到stringbuilder,b表示刪除stringbuild...

2015華為校招機試題

第一題 60分 按要求分解字串,輸入兩個數m,n m代表輸入的m串字串,n代表輸出的每串字串的位數,不夠補0。例如 輸入2,8,abc 123456789 則輸出為 abc00000 12345678 90000000 include include include 華為2015年第一道上機題 vo...

2013亞馬遜校招機試題1

題目沒複製下來,憑印象寫的。1.刪除 中的的注釋。注釋分兩種,和 字串中出現的注釋符號不能被當作注釋。解題思路 以前編譯原理課做過類似的程式,分出幾個狀態,並做狀態轉移判斷即可。stringbuilder中存放返回的字串。動作a表示新增當前字元到stringbuilder,b表示刪除stringbu...