zoukankan      html  css  js  c++  java
  • LeetCode刷题记录_最长公共前缀

    编写一个函数来查找字符串数组中的最长公共前缀。

    如果不存在公共前缀,返回空字符串 ""

    示例 1:

    输入: ["flower","flow","flight"]
    输出: "fl"
    

    示例 2:

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

    说明:

    所有输入只包含小写字母 a-z 。

    题解:

    用两层循环,第一层循环选定字符串str[0],用substring获得str[0]的各个分字符串,在第二层循环中与其他字符串的substring对比,若不同则返回前一个子串:

    class Solution {
        public String longestCommonPrefix(String[] strs) {
            
            int amount = strs.length;
            if (amount==0) return "";
            int len = strs[0].length();
            for(int i=1;i<amount;i++){
                if(strs[i].length()<len)
                    len=strs[i].length();
            } 
            String str="";
            for(int i=1;i<=len;i++){
                str=strs[0].substring(0,i);
                for(int j=1;j<amount;j++){
                    if(!str.equals(strs[j].substring(0,i)))
                        return str.substring(0,i-1);
                }
            }
            return str;
        }
    }
    

     注意:1.substring中string的s为小写。

    2.对字符串个方法的掌握还是太差了,别人的解法中看到了用str1.indexOf(String str2)求解的,该方法若存在返回[0,str1.length()-str2.length()]的值,不存在返回-1,所以只需从str1.substring(0,str.length())到str1.substring(0,0)判断indexOf的返回值是否为0,若为0则返回字符串,否则str1=str1.substring(0,str1.length()-1)

  • 相关阅读:
    线程池
    自定义死锁
    不安全线程取钱
    JUC Lock实现类ReentrantLock使用说明
    同步方法跟同步方法块 synchronized
    线程的管程法跟信号灯法_生产者消费模式
    CopyOnWriteArrayList JUC当中安全容器
    inserttextatcursorinacontenteditablediv
    Android开发——NDK开发入门
    Linux下线程同步对象(1)——互斥量
  • 原文地址:https://www.cnblogs.com/annofyf/p/9382358.html
Copyright © 2011-2022 走看看