編寫乙個函式,檢查輸入的鍊錶是否是回文的。
示例 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 等等 如果乙個字串能夠通過重新排列得到乙個回文串,那麼該字...