zoukankan      html  css  js  c++  java
  • LeetCode -- Longest Common Prefix

    Question:

    Write a function to find the longest common prefix string amongst an array of strings.

    Analysis:

    写一个函数找到一个字符串数组的最长公共前缀。

    思路:依次两两比较,用短的前缀更新比较长的前缀,一直到数组的末尾。

    Answer:

    public class Solution {
        public static String longestCommonPrefix(String[] strs) {
            if(strs.length == 0)
                    return "";
            if(strs.length == 1)
                    return strs[0];
            char[] res = strs[0].toCharArray();
            for(int i=1; i<strs.length; i++) {
                    char[] ch1 = strs[i-1].toCharArray();
                    char[] ch2 = strs[i].toCharArray();
                    char[] ch12 = getCommon(ch1, ch2);
                    //System.out.println(ch12[0]);
                    if(ch12.length == 1 && ch12[0] == '') 
                        return "";
                    if(ch12.length <= res.length) {
                        res = ch12;
                    }
            }
            return new String(res);
        }
        public static char[] getCommon(char[] ch1, char[] ch2) {
                int shorter = ch1.length <= ch2.length ? ch1.length : ch2.length;
                char[] prefix = new char[shorter];
            int common = 0;
            for(int j=0; j<shorter; j++) {
                if(ch1[j] == ch2[j]) {
                    common++;
                    prefix[j] = ch1[j];
                }
                else 
                    break;
            }
            char[] prefix1 = new char[common];
            for(int i=0; i<common; i++) 
                prefix1[i] = prefix[i];
            return prefix1;
        }
    }
  • 相关阅读:
    Megcup 2017 决赛第一题 规则
    折正方体-------------给你出道题
    论公平
    Vue 将一个组件嵌入到另一个组件中
    Vue下的index.html
    Vue下的package.json
    Vue 一些用法
    chkconfig 系统服务管理
    Windows和Linux下的 telnet命令 不是内部或外部命令的解决方案
    JSONPlaceholder
  • 原文地址:https://www.cnblogs.com/little-YTMM/p/4941978.html
Copyright © 2011-2022 走看看