2019-03-5-算法-进化(最长公共前缀)
生活随笔
收集整理的這篇文章主要介紹了
2019-03-5-算法-进化(最长公共前缀)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
編寫一個函數來查找字符串數組中的最長公共前綴。
如果不存在公共前綴,返回空字符串 “”。
示例 1:
輸入: ["flower","flow","flight"] 輸出: "fl"示例 2:
輸入: ["dog","racecar","car"] 輸出: "" 解釋: 輸入不存在公共前綴。說明:
所有輸入只包含小寫字母 a-z 。
我的初版解決思路為遍歷數組,挨個字符進行比較,直到結束。代碼如下:
//循環遍歷,有兩種退出條件: 1,數組最短元素 2,數組內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,數組最短元素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,數組內String相同位置字符不同sb.deleteCharAt(i);toEnd =true;break;}}}return sb.toString();}采用水平掃描法進行優化
舉例:
最終優化代碼如下:
代碼簡潔清晰了很多。
持續精進,加油!
總結
以上是生活随笔為你收集整理的2019-03-5-算法-进化(最长公共前缀)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 毛毛姐到底是谁毛毛姐的原名叫什么
- 下一篇: kettle 空字符串 null问题解