字串 面試

2021-07-25 16:09:00 字數 907 閱讀 3351

最近看書看不下去就刷面試題,決定把字串有關面試題都寫這個文章裡

1.實現乙個函式在字串中把空格替換成」%20」

注意是否會發生記憶體溢位

#include 

#include

using

namespace

std;

void changezi(char** buff, int size)

}if(num = 0)//要考慮沒有空格的情況,那麼就什麼操作也不做

char* tmp = new

char[size + num * 2];

int j = 0;

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

else

}*buff = new

char[size + num * 2];

strcpy_s(*buff, size + num * 2, tmp);

delete tmp;

delete tmp2;

}int main()

如果是對於已經知曉的,長度足夠的陣列,我們可以只通過o(n)的複雜度來賦值,乙個指標指向計算出新的長度的末尾,乙個指標指向原先長度的末尾,然後往前走,這樣只需要o(n)就可以在原先陣列上面複製成功了。

注意思考問題的完備性測試用例

(1)輸入字串包含空格

(2)輸入字串不包含空格

(3)輸入字串為null,因為**需要求長度,所以如果是空就進不去我的函式,所以算是變相檢查

新思想:

在複製字串時候為了避免移動,我們可以考慮從後向前複製,這樣可以大大的增加效率。

面試 字串 字串相乘

給出兩個字串的正整數,求其乘積,返回其乘積的字串的表示 public class solution 確保每個數字大小在0 9之間 int carry 0 for int i n 1 i 0 i string result boolean firstnonzero false 將陣列轉換為字串,如果第...

字串面試題 字串逆序

字串逆序可以說是最經常考的題目。這是一道入門級的題目。給定乙個字串s,將s中的字元順序顛倒過來,比如s abcd 逆序後變成s dcba 基本上沒有這麼考的,放在這裡主要是為了和後面的原地逆序做個對比。很簡單,直接分配乙個與原字串等長的字元陣列,然後反向拷貝一下即可。char reverse cha...

Java字串面試(二)

先看下面2個程式 public static void main string args public static void main string args 第乙個程式輸出是true,由於 a 和1算是字串常量,所以 在編譯期b的值就確定了,在執行期不會產生stringbuilder物件,所以在...