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.

    写一个功能public String longestCommonPrefix(String[] strs)找出字符串数组的最长公共前缀。

    算法思路:① 首先分析最长公共字符串长度一定不会超过最短字符串的长度,所以先找出最短字符串的长度minlength。

         ② 然后从第一个字符串挨个取字母,加到Str中,然后判断数组其他字符串的前缀是否和str相同 个数不会超过minlength,就能判断该字符串数组最长前缀。

    代码设计:

    class Solution {
        public String longestCommonPrefix(String[] strs) {
            // Note: The Solution object is instantiated only once and is reused by each test case.
           String str="";
       		if(strs.length==0)
       			return str;
           int minlength=lengthofSmallString(strs);  //找到最小字符串长度
          for(int count=0;count<minlength;count++){//最长前缀的长度一定不会超过minlength
        	     str+=strs[0].charAt(count);    //挨个取第一个字符串的字母,然后判断其他字符串前缀是不是str
            for(int i=0;i<strs.length;i++){
            	if(!isContains(strs[i], str)){
            		str=str.substring(0, count);
            		return str;
            	}
            }
            
          }
        	return str;
        }
        public Boolean isContains(String str1,String str2){//这个函数的作用是判断str2是否是str1的前缀
        	for(int i=0;i<str2.length();i++){
        		if(str1.charAt(i)!=str2.charAt(i))
        			return false;
        	}
        	return true;
        }
        public int lengthofSmallString(String[] strs){  //这个函数的作用找到字符串数组的最小字符串长度并返回。
        		int min=Integer.MAX_VALUE;
        		for(int i=0;i<strs.length;i++){
        			if(strs[i].length()<min){
        				min=strs[i].length();
        			}
        		}
        	return min;
        	}
    }
    
  • 相关阅读:
    Nginx负载均衡配置实例详解
    Tomcat服务器
    如何设计安全的用户登录功能
    Tomcat 配置用户认证服务供C#客户端调用
    DataWindow值获取
    弹出上下文菜单
    DataWindow快速从Grid格式转为Freefrom
    postEvent() @ triggerEvent
    日期赋值为: 0000:00:00
    截取字符串
  • 原文地址:https://www.cnblogs.com/zhaolizhen/p/CommonPrefix.html
Copyright © 2011-2022 走看看