LeetCode上求最长公共字符前缀字符串问题——Longest Common Prefix
1.题目如下:
Write a function to find the longest common prefix string amongst an array of strings.
If there is no common prefix, return an empty string "".
Example 1:
Input: ["flower","flow","flight"]
Output: "fl"
Example 2:
Input: ["dog","racecar","car"]
Output: ""
Explanation: There is no common prefix among the input strings.
Note:
All given inputs are in lowercase letters a-z.
2.中文翻译:
编写一个函数来查找字符串数组中最长的公共前缀字符串。
如果没有共同的前缀,则返回一个空字符串“”。
例1:
输入: ["flower","flow","flight"]
输出:“fl”
例2:
输入: ["dog","racecar","car"]
输出:“”
说明:输入字符串中没有公共前缀。
注意:
所有给定的输入都以小写字母a-z表示。
3.题目解析:
公共最长的前缀字符串:要求所有字符串中都出现相同的连续字符串,且出现位置从该字符串初始位置起。
输入要求是字符串数组,输出为字符串,我们可以通过数组第一个元素与其他元素相比较,从第一个字符串第一个字符开始,只要第一个元素的前缀字符串在其他元素中没有出现,则返回“”,若出现,则记下这个值,移到下一位继续比较。我们需要在每次比较时判断子字符串出现的位置是否为其他元素的第一个位置,所有其他元素都是第一个位置的话,则它是前缀字符串。
函数说明:
int indexOf(String str):该函数返回字符串中子字符串str出现的位置,可以通过它来比较是否出现前缀字符串。
4.程序代码:
public String longestCommonPrefix(String[] strs) {
int i,j,flag=0;
String str="";
String result="";
if (strs.length==0) {
return result; //若为空,返回“”
}
else {
for (i = 0; i< strs[0].length(); i++) { //用第一个字符串来比较
str=str+strs[0].charAt(i); //依次获取第一个字符串的前缀字符串
//System.out.println(str+" ");
for (j = 1; j < strs.length;j ++) { //与其他元素来做比较
int location=strs[j].indexOf(str); //获取出现字符串出现位置
if (location==0) { //判定是否为前缀字符串
flag++;
}
//System.out.println(location+" ");
}
if (flag==strs.length-1) { //结果为前缀字符串
result=str; //记下当前的公共前缀字符串
flag=0; //继续为下一步作比较
//System.out.println(result+" ");
}
else {
flag=0;
}
}
return result;
}
}
5.通过情况
LeetCode上求最长公共字符前缀字符串问题——Longest Common Prefix相关推荐
- C#,最长公共扩展(LCE,Longest Common Extention)的算法与源代码
一.最长公共扩展(LCE)问题 考虑一个字符串s,并为每对(L,R)计算从L和R开始的s的最长子字符串. 在LCE中,在每个查询中,我们必须回答从索引L和R开始的最长公共前缀的长度. 例子: 字符串: ...
- 【LeetCode算法题库】Day5:Roman to Integer Longest Common Prefix 3Sum
[Q13] Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol Valu ...
- LeetCode - Easy - 14. Longest Common Prefix
Topic String Description https://leetcode.com/problems/longest-common-prefix/ Write a function to fi ...
- LeetCode实战:最长公共前缀
题目英文 Write a function to find the longest common prefix string amongst an array of strings. If there ...
- Leetcode刷题-最长公共前缀
Leetcode刷题-最长公共前缀 简介 题目 个人答案及结果 学习一下官方的 简介 最近尝试下大家口口相传的神器 leetcode-cn.com,大家自己注册就可以选择题库进行使用了.我都会先自己出 ...
- C#LeetCode刷题之#14-最长公共前缀(Longest Common Prefix)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3921 访问. 编写一个函数来查找字符串数组中的最长公共前缀. 如 ...
- LeetCode in Python-14. Longest Common Prefix 最长公共前缀
Longest Common Prefix 最长公共前缀 题目 解法1.逐位比较 解法2.利用集合性质 解法3.zip+sets 解法4.借助os模块自带函数... 出处 题目 解法1.逐位比较 cl ...
- LeetCode 14. Longest Common Prefix字典树 trie树 学习之 公共前缀字符串
所有字符串的公共前缀最长字符串 特点:(1)公共所有字符串前缀 (好像跟没说一样...) (2)在字典树中特点:任意从根节点触发遇见第一个分支为止的字符集合即为目标串 参考问题:https://lee ...
- Algorithm:C++/python语言实现之求旋转数组最小值、求零子数组、求最长公共子序列和最长公共子串、求LCS与字符串编辑距离
Algorithm:C++/python语言实现之求旋转数组最小值.求零子数组.求最长公共子序列和最长公共子串.求LCS与字符串编辑距离 目录 一.求旋转数组最小值 1.分析问题 2.解决思路 二.求 ...
最新文章
- think in java笔记_Thinking in java读书笔记 PDF 下载
- agent proxy comparison
- Python数据分析pandas之series初识
- 【嵌入式】C语言中volatile关键字
- linux lvm uuid绑定,LVM:“找不到具有uuid的设备”但是blkid找到了UUID
- 利用子网掩码划分子网
- pde中微元分析法的主要思想_有限元方法的核心思想
- mysql和php环境_php环境搭建wampserver、Apache、Mysql和php
- 【C语言】在线OJ题 BC99-BC119-牛客网编程初学者入门训练
- leetcode 786 第K个最小的素数分数
- ocr语种识别_利用OCR图文识别,快速帮你提取文字信息
- 计算机二级office高级应用教程,2015计算机二级Office高级应用上机试题及答案
- android蓝牙查看电池容量_Android中获取电池电量
- Opencv的使用教程,opencv比较全的基础教程
- 2022年8月深圳CPDA数据分析师认证报名
- 密室逃脱线上如何精准获客?
- 维基百科的语料库下载以及后续操作(一)2020年6月【包括opencc下载避雷,繁转简】
- 科技护肤品,买还是不买
- Oracle 18c新特性一览
- 2300专项:D. Stressful Training(二分 充电)