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

2022-04-02 02:45:09 字數 572 閱讀 7363

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

示例 1:

輸入: 1->2

輸出: false

示例 2:

輸入: 1->2->2->1

輸出: true

高階:你能否用 o(n) 時間複雜度和 o(1) 空間複雜度解決此題?

利用快慢指標在找到鍊錶中點的同時,將slow指標指的元素倒置,如果鍊錶元素個數為奇數,則slow節點的下乙個節點開始和我們已經倒置的鍊錶開始依次比較,如果為偶數個,則直接從slow節點和它上乙個節點依次對比。

/**

* definition for singly-linked list.

* public class listnode

* } */

class

solution

if(fast != null

)

while(slow != null && prev != null

)

return

true

; }

}

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

編寫乙個函式,檢查輸入的鍊錶是否是回文的。示例 1 輸入 1 2輸出 false 示例 2 輸入 1 2 2 1輸出 true 高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?1.將資料讀入陣列 2.使用前後指標,若值相等,指標朝中間走 若不相等,break,返回不為回文 defi...

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

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

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

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