leetcode-14-最长公共前缀
问题:
解:
请注意,该问题是查找最长公共前缀
一、水平扫描法
package com.example.demo;public class Test14 {/*** 查找字符串数组中最长的公共**前缀**** @param strs* @return*/public String longestCommonPrefix(String[] strs) {//水平扫描法if (strs == null || strs.length == 0) {return "";}String prefix = strs[0];for (int i = 1; i < strs.length; i++) {// 因为查找的各个字符串的前缀,所以A字符串在B字符串中的开头,不是开头的话,prefix--,重新查询,制动为空时结束while (strs[i].indexOf(prefix) != 0) {prefix = prefix.substring(0, prefix.length() - 1);if (prefix.isEmpty()) {return "";}}}return prefix;}public static void main(String[] args) {Test14 t = new Test14();String[] strings = {"abcd", "abc", "ab"};String s = t.longestCommonPrefix(strings);System.out.println(s);} }
二、分支法
package com.example.demo;public class Test14 {/*** 查找字符串数组中最长的公共**前缀**** @return*/public String longestCommonPrefix1(String[] strs) {//分治法if (strs == null || strs.length == 0) {return "";}return longestCommonPrefix1(strs, 0, strs.length - 1);}/*** 递归、分治** @param strs* @param left* @param right* @return*/private String longestCommonPrefix1(String[] strs, int left, int right) {// 递归终止条件if (left == right) {// 递归的终止条件要选择好return strs[left];} else {int mid = (left + right) / 2;// 递归的思想(不要深入想递归内部,只要在宏观上认为,该递归返回的字符串就是left到mid之间的最长公共前缀)String lcpLeft = longestCommonPrefix1(strs, left, mid);String lcpRight = longestCommonPrefix1(strs, mid + 1, right);//将返回的左右两个最长公共子串进行比较,获取最终的最长公共前缀return comparePreFix(lcpLeft, lcpRight);}}/*** 比较两个字符串中的最长前缀** @param lcpLeft* @param lcpRight* @return*/private String comparePreFix(String lcpLeft, String lcpRight) {int len = Math.min(lcpLeft.length(), lcpRight.length());for (int i = 0; i < len; i++) {if (lcpLeft.charAt(i) != lcpRight.charAt(i)) {return lcpLeft.substring(0, i);}}return lcpLeft.substring(0, len);}public static void main(String[] args) {Test14 t = new Test14();String[] strings = {"abcd", "abc", "ab"};String s = t.longestCommonPrefix1(strings);System.out.println(s);} }
leetcode-14-最长公共前缀相关推荐
- 52 - 算法- leetcode 14 最长公共前缀
// leetcode 14 最长公共前缀 str.sub(index1,index2)这个函数不清楚 // for(vector中的类class : vector) for 循环中的index 和 ...
- [模拟] leetcode 14 最长公共前缀
[模拟] leetcode 14 最长公共前缀 1.题目 题目链接 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例1: 输入: [& ...
- Leetcode 14.最长公共前缀(Longest Common Prefix)
Leetcode 14.最长公共前缀 1 题目描述(Leetcode题目链接) 编写一个函数来查找字符串数组中的最长公共前缀.如果不存在公共前缀,返回空字符串 "". 输入: ...
- LeetCode 14.最长公共前缀(字符串)
上一篇博客:Leetcode 13.罗马数字转整数(字符串) 写在前面:大家好!我是ACfun,我的昵称来自两个单词Accepted和fun.我是一个热爱ACM的蒟蒻.最近萌生了刷LeetCode的 ...
- [leetcode] 14. 最长公共前缀
14. 最长公共前缀 超级简单... class Solution { public:string longestCommonPrefix(vector<string> &strs ...
- LeetCode 14. 最长公共前缀 (单指针水平扫描)
14. 最长公共前缀 题意: 找出一个字符串数组中所有字符串的最长公共前缀,如果不存在返回"" 思路: 假设数组第一个元素就是ans 从下标1开始遍历数组 用一个指针水平扫描ans ...
- LeetCode 14. 最长公共前缀
1. 题目 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1:输入: ["flower","flow ...
- LeetCode 14 最长公共前缀
https://leetcode-cn.com/problems/longest-common-prefix/ 解决方案 class Solution {public String longestCo ...
- Leetcode 14.最长公共前缀
原题链接 解题思路: 1.本题使用模拟法 2.取第一个字符串的首元素,与剩余字符串对应位置相比较,如果全部相等将此字符加入结果中,继续到下一个字符一次比较,直至出现不相同的位置,返回结果. 3.需要注 ...
- [leetcode]14. 最长公共前缀
1.一列一列地比: class Solution {public:string longestCommonPrefix(vector<string>& strs) {if(strs ...
最新文章
- 欧几里得算法与唯一分解定理
- mysql行级锁测试
- 最前线|爱奇艺低调上线“好多视频”,短视频战场的主动防御
- linux集群无密码访问,Linux服务器集群通过SSH无密码登录
- SpringMVC快速入门-代码实现
- 借汉诺塔理解栈与递归
- hangfire.mysql.core_abp 使用 hangfire结合mysql
- matlab用高斯消元法解线性方程组,用matlab利用高斯消元法求解线性方程组
- oracle change schema,使用pt-online-schema-change修改主键时注意
- oracle精度说明符1~38_数据库显示精度说明符过多
- QQ音频文件服务器,unlock-music:支持解密网易云/QQ音乐的加密文件和ID3信息补全...
- ESC/POS协议打印机工具类(java)
- Cesium 三角测量(水平距离,直线距离,高度差)
- mactex+vscode+skim打造latex编译环境
- Mysql varchar类型长度计算(mysql字段长度计算)
- Genbank的gbff格式转gff3格式(补充)
- 2011年3月《震痛•震恫•震动》
- 中国非正常死亡最高的行业 TOP 10
- 选择什么样的思想,就会有什么样的结局
- 来,打一下五笔的字根表
热门文章
- 广播模块加继电器怎么接线_变频器如何与PLC相连接,怎么用PLC控制?
- swingbench oracle rac,使用Swingbench压力测试Oracle RAC
- 欧瑞变频器800参数设置_【收藏】变频器密码大全和维修常用方法!
- mysql blob 导出_mysql blob导出文本解密 | 学步园
- html.锁屏主题,锁屏HTML主题插件GroovyLock发布
- 【redis】批量删除key
- 提取图片纹理_Fundamentals Of Computer Graphics 第十一章 纹理映射(中)
- vue 固定div 滚动_vue移动端 导航吸顶(固定定位)页面滚动出现抖动
- 计算机导论中的名词解释,计算机导论期末考试试题及答案
- python request file upload_Python request 上传文件