程式設計師面試金典 面試題02 06 回文鍊錶

2021-10-11 22:42:18 字數 772 閱讀 1013

編寫乙個函式,檢查輸入的鍊錶是否是回文的。

示例 1:

輸入: 1

->

2輸出: false

示例 2:

輸入: 1

->

2->

2->

1輸出: true

高階:你能否用 o

(n) 時間複雜度和 o(1

) 空間複雜度解決此題?

1.將資料讀入陣列

2.使用前後指標,若值相等,指標朝中間走;

若不相等,break,返回不為回文

/**

* definition for singly-linked list.

* struct listnode ;

*/bool ispalindrome

(struct listnode* head)

int data[num]

; ptr = head;

for(

int i=

0;i)int start =0;

int rear = num-1;

int is_palin =1;

while

(start < rear)

else}if

(is_palin ==1)

return true;

else

return false;

}

程式設計師面試金典 面試題 02 06 回文鍊錶

編寫乙個函式,檢查輸入的鍊錶是否是回文的。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?利用快慢指標在找到鍊錶中點的同時,將slow指標指的元素倒置,如果鍊錶元素個數為奇數,則slow節點的...

程式設計師面試金典 面試題 08 09 括號

括號。設計一種演算法,列印n對括號的所有合法的 例如,開閉一一對應 組合。說明 解集不能包含重複的子集。例如,給出 n 3,生成結果為 dfs搜尋,如果當前左括號用超了,右括號用超了,或者右括號的數量大於左括號的數量直接返回。而如果左右括號剛好用盡,代表生成乙個結果,記錄下來。然後就是遞迴,新增左括...

程式設計師面試金典 面試題01 04 回文排列

給定乙個字串,編寫乙個函式判定其是否為某個回文串的排列之一。回文串是指正反兩個方向都一樣的單詞或短語。排列是指字母的重新排列。回文串不一定是字典當中的單詞。示例1 輸入 tactcoa 輸出 true 排列有 tacocat atcocta 等等 如果乙個字串能夠通過重新排列得到乙個回文串,那麼該字...