私人信息调查,郑州seo实战培训,北京包装设计制作,网站开发重要性题目描述#xff1a; 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀#xff0c;返回空字符串 “”。 输入#xff1a; strs [“flower”,“flow”,“flight”] 输出#xff1a; “fl” 代码实现#xff1a;
public class Main{public static void…题目描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀返回空字符串 “”。 输入 strs [“flower”,“flow”,“flight”] 输出 “fl” 代码实现
public class Main{public static void main(String[] args) {//测试案例String[] strings new String[]{flower, flow, flight};String res longestCommonPrefix(strings);//打印结果System.out.println(res);//fl}public static String longestCommonPrefix(String[] strs) {//横向遍历:遍历字符串数组中每一个字符串不断更新最长公共前缀String res strs[0];//假定第一个字符串为最大前缀for (int i 1; i strs.length; i) {//从第二个字符串开始比较res longestCommonPrefix(res, strs[i]);//调用求最长公共前缀函数重载}//返回最终结果return res;}/*** 求任意两个字符的最长公共前缀** param res 当前最长公共前缀* param compare 当前遍历到的数组中的某个字符串* return 返回两个字符串的最长前缀*/public static String longestCommonPrefix(String res, String compare) {int len Math.min(res.length(), compare.length());//计算两者之间较短的字符串长度//目标索引int index 0;for (int i 0; i len; i) {//index len:防止数组越界if (index len res.charAt(index) compare.charAt(index)) {index;//当连续字符相同时index开始计数} else {break;//当出现字符不相同时则选择直接跳出循环}}//返回切割后的字符串就是当前两个字符串的最长前缀return res.substring(0, index);}
}