2019-03-5-算法-进化(最长公共前缀)
生活随笔
收集整理的這篇文章主要介紹了
2019-03-5-算法-进化(最长公共前缀)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述
編寫一個(gè)函數(shù)來(lái)查找字符串?dāng)?shù)組中的最長(zhǎng)公共前綴。
如果不存在公共前綴,返回空字符串 “”。
示例 1:
輸入: ["flower","flow","flight"] 輸出: "fl"示例 2:
輸入: ["dog","racecar","car"] 輸出: "" 解釋: 輸入不存在公共前綴。說(shuō)明:
所有輸入只包含小寫字母 a-z 。
我的初版解決思路為遍歷數(shù)組,挨個(gè)字符進(jìn)行比較,直到結(jié)束。代碼如下:
//循環(huán)遍歷,有兩種退出條件: 1,數(shù)組最短元素 2,數(shù)組內(nèi)String相同位置字符不同public String longestCommonPrefix(String[] strs) {if(strs == null || strs.length ==0) {return "";}StringBuilder sb = new StringBuilder();boolean toEnd = false;for(int i=0;;i++) {if(toEnd) {break;}for(String arr:strs) {if(i >= arr.length()) {//1,數(shù)組最短元素if(sb.length()>i) {sb.deleteCharAt(i);}toEnd =true;break;}if(sb.length()<=i) {sb.append(arr.charAt(i));}else if(sb.charAt(i) != arr.charAt(i)) {//2,數(shù)組內(nèi)String相同位置字符不同sb.deleteCharAt(i);toEnd =true;break;}}}return sb.toString();}采用水平掃描法進(jìn)行優(yōu)化
舉例:
最終優(yōu)化代碼如下:
代碼簡(jiǎn)潔清晰了很多。
持續(xù)精進(jìn),加油!
總結(jié)
以上是生活随笔為你收集整理的2019-03-5-算法-进化(最长公共前缀)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 毛毛姐到底是谁毛毛姐的原名叫什么
- 下一篇: 怎样设置快速拨号