面試筆試程式設計題(三)

2021-09-24 11:02:50 字數 1820 閱讀 1113

(六)驗證回文串

給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。

說明:本題中,我們將空字串定義為有效的回文串。

示例 1:

輸入: 「a man, a plan, a canal: panama」

輸出: true

示例 2:

輸入: 「race a car」

輸出: false

def huiwen(self, s):

if not s:

return true

s_filter = ''.join(filter(str.isalnum, s)).lower()

return s_filter[::-1] == s_filter

(七)分割回文串

給定乙個字串 s,將 s 分割成一些子串,使每個子串都是回文串。

返回 s 所有可能的分割方案。

示例:輸入: 「aab」

輸出:[

[「aa」,「b」],

[「a」,「a」,「b」]

]

def parition(self, s):

if len(s) == 0:

return

if len(s) == 1:

return [[s]]

res =

for i in range(1, len(s) + 1):

left = s[: i]

right = s[i: ]

if left == left[::-1]:

right = self.partition(right)

for i in range(len(right)):

return res

(八) 單詞拆分

給定乙個非空字串 s 和乙個包含非空單詞列表的字典 worddict,判定 s 是否可以被空格拆分為乙個或多個在字典**現的單詞。

說明:拆分時可以重複使用字典中的單詞。

你可以假設字典中沒有重複的單詞。

示例 1:

輸入: s = 「leetcode」, worddict = [「leet」, 「code」]

輸出: true

解釋: 返回 true 因為 「leetcode」 可以被拆分成 「leet code」。

示例 2:

示例 3:

輸入: s = 「catsandog」, worddict = [「cats」, 「dog」, 「sand」, 「and」, 「cat」]

輸出: false

解題思路:(1)儲存字典裡最長的單詞的長度 max_len(2)從頭搜尋字串的max_len範圍,因為超出max_len範圍的肯定不在字典裡。如果存在,則將字串的index儲存在res中 (3)如果字串遍歷完了,則res[-1] == len(s),返回結果為true

def split(self, s, worddict):

res, max_len = [0], 0 # res儲存字串的index

for word in worddict:

max_len = max(max_len, len(word))

for i in range(1, len(s)+1):

for j in res:

if i-j <= max_len and s[j: i] in worddict:

break

return res[-1] == len(s)

新浪筆試程式設計題三

一維點對問題 集合s中有直線上的n個點,n 1 實現函式求出n個點之間的最短距離,並寫出時間複雜度 先使用排序演算法將點的座標排序,然後求相鄰兩點之間的最短距離即可,快排時間複雜度較低 public class main3 nums i x return i public void quicksor...

筆試 程式設計題

1.class a class b public a int main 2.int main 3.int func int a int main little endian int main char p char a 2 printf 0x x,0x x,0x x p 1 p,short p re...

筆試程式設計三

1.編寫函式,實現字串逆序。char ptr abcdefg int size strlen ptr char str new char size 1 int i 0,j size 1 for i 0 istr i ptr j cout2.通過程式設計實現輸出2 的1000次方。define max...