最长公共前缀

https://leetcode-cn.com/problems/longest-common-prefix/description/

题目描述

编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。

示例

输入: ["flower","flow","flight"]
输出: "fl"
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。

思路

1.考虑输入为空的情况;
2.以输入字符串数组的第一个字符串为标杆,其每一位与后面字符串的每一位比较;
3.如何跳出两层for循环;

  • 直接return
  • 定义一个boolean类型的变量来控制

4.String、StringBuffer、StringBuilder的区别
String 字符串常量
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全)

代码

class Solution {
    public String longestCommonPrefix(String[] strs) {
         if(strs.length==0){
            return "";
        }
         StringBuffer s = new StringBuffer();
        String s1 = strs[0];
        for (int i = 0; i < s1.length(); i++) {
            boolean flag= false;
            for (int j = 0; j < strs.length; j++) {
                if (i >= strs[j].length() || s1.charAt(i) != strs[j].charAt(i)) {
//                    return s.toString();
                    flag=true;
                    break;
                }
            }
            if(flag){
                break;
            }
            s.append(s1.charAt(i));
        }
        return s.toString();
    }
}

你可能感兴趣的:(最长公共前缀)