記錄五 最長相同字首

2021-09-11 19:46:05 字數 1117 閱讀 7112

寫乙個函式,在乙個字串陣列中找出最長的相同字首字串,如果沒有相同字首,返回乙個空字串「」。

例:input: [「flower」,「flow」,「flight」] output:「fl」

input:[「dog」,「racecar」,「car」] output:""

我的思路:因為要找出陣列中所有元素的公共最長子串,所以必要遍歷所有的元素,然而,陣列中的每個元素都是字串,對字串的判斷遍歷每個字元,雙層迴圈可以得到最長的公共子串。遍歷陣列的同時分別比較每個元素的字元。這種方法叫「垂直掃瞄」

**

class solution 

return strs[0];}}

時間複雜度:o(s),空間複雜度:o(1)

看了解析後,發現還有另外的方法:水平掃瞄,分治法,二分法。

}時間複雜度:o(s),空間複雜度:o(m·log(n))

public string longestcommonprefix(string strs) 

return strs[0].substring(0, (low + high) / 2);

}private boolean iscommonprefix(string strs, int len)

時間複雜度:o(s·log(n)),空間複雜度:o(1)

出了上述說的方法外,還可以利用樹來解決,如下圖:

Reids怎麼批量刪除相同字首的keys

在redis的日常工作使用中,經常需要在伺服器用命令列刪除具有相同字首的keys。比如test 1,test 2,test 3 等等 1 首先我們需要登入到linux等伺服器視窗,使用redis cli登入redis。redis cli 注 如果提示 redis error noauth authe...

Reids 批量刪除有相同字首的keys

我一般使用 redis cli 登入redis 但是進去後會提示 redis error noauth authentication required so 使用命令 auth password 即redis登入密碼,後面用這個替代 即可解決。因為redis命令列只能使用del 來刪除乙個key,當...

sqlserver 批量刪除相同字首名的表

方法1 declare table nvarchar 30 declare tmpcur cursor forselect name from sys.objects where type u and name like n hsupa open tmpcur fetch next from tmp...