2020 12 12 劍指offer刷題

2021-10-11 21:59:10 字數 3466 閱讀 2695

題目描述

組合語言中有一種移位指令叫做迴圈左移(rol),現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於乙個給定的字串行s,請你把其迴圈左移k位後的序列輸出。例如,字串行s=」abcxyzdef」,要求輸出迴圈左移3位後的結果,即「xyzdefabc」。是不是很簡單?ok,搞定它!

解題思路

解法1:使用標準庫string::substr(size_type __pos, size_type __n)string::substr(pos, n)表示擷取字串string,從pos下標開始,長度為n的子串。

比如:str = "helloworld",那麼str.substr(2,3)等於"llo"

解法2:遍歷陣列,利用輔助字串

解法3:後面補上相同的字串str;

class

solution

};

題目描述

牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,「student. a am i」。後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是「i am a student.」。cat對一一的翻轉這些單詞順序可不在行,你能幫助他麼?

解題思路

解法1:先翻轉整個字串,再反轉單詞;注意空格

解法2:使用stringstream庫函式

解法3:從後往後遍歷,部分擷取最後加上空格;

//使用stringstream函式,時間複雜度o(n),空間複雜度o(n);

class

solution

};

//解法3:時間複雜度為o(n),空間複雜度o(n);

class

solution

while

(left>=

0&&str[left]

!=' ')if

(left!=right)

}//除去最後的空格if(

!res.

empty()

)return res;}}

;

題目描述

解題思路:

利用短路原理:a&&b,a為0,不會執行b,a||b;a為1不會執行b

**實現

class

solution

};

題目描述:

解題思路:

class

solution

while

(carry!=0)

;//進製不為0則繼續執行加法處理進製;

return result;}}

;

解題思路

先判斷第一位是正號還是負號;然後利用isdigit()判斷是否是數字。

對於「123456」可以利用如下**進行轉化

int ans =0;

for(

int i=

0; i

size()

;++i)

**實現:

class

solution

return flag*res;}}

;

題目描述

/*

struct listnode

};*/

class

solution

//最後乙個相同的節點向後移動一位

cur=cur-

>next;

pre-

>next=cur;

}else

}return vhead-

>next;}}

;

題目描述:

給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。

**實現:

/*

struct treelinknode

};*/

class

solution

min_order

(root-

>left,que)

; que.

push

(root)

;min_order

(root-

>right,que);}

treelinknode*

getnext

(treelinknode* pnode)

queue

>que;

min_order

(root,que)

;while

(que.

front()

!=pnode)

que.

pop();

if(que.

empty()

)return

nullptr

;return que.

front()

;}};

劍指offer全套解答 劍指offer 1 5

1.二維陣列中的查詢 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。public class solution int n array 0 length i...

劍指offer全套解答 劍指offer 36 45

36.兩個鍊錶的第乙個公共節點 輸入兩個鍊錶,找出它們的第乙個公共結點。注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的 public class solution return p 37.數字在排序陣列 現的次數 統計乙個數字在公升序陣列 現的次數。publi...

劍指offer全套解答 劍指offer 46 55

46.孩子們的遊戲 圓圈中最後剩下的數 每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。hf作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的 首先,讓小朋友們圍成乙個大圈。然後,他隨機指定乙個數m,讓編號為0的小朋友開始報數。每次喊到m 1的那個小朋友要出...