每日算法之14. 最长公共前缀

打印 上一主题 下一主题

主题 1518|帖子 1518|积分 4554

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
14. 最长公共前缀

题目描述
  1. 编写一个函数来查找字符串数组中的最长公共前缀。
  2. 如果不存在公共前缀,返回空字符串 ""。
复制代码
方法 暴力算法
  1. 先判断字符串数组是否有为空,为空直接返回空
  2. 令第一个字符串作为基准进行比较
  3. 设置一个长度,作为最后最长公共前缀的长度
  4. 循环判断,选取最小长度
复制代码
代码
  1. package easy.最长公共前缀14;
  2. class Solution {
  3.     public String longestCommonPrefix(String[] strs) {
  4.         //如果为空,直接返回空
  5.         if ("".equals(strs[0])) return "";
  6.         //第一个作为基准进行比较
  7.         String s = strs[0];
  8.         //记录最长公共前缀的长度
  9.         int len = s.length();
  10.         for (int i = 1; i < strs.length; i++) {
  11.             int l = 0;
  12.             if ("".equals(strs[i])) return "";
  13.             int length = Math.min(s.length(), strs[i].length());
  14.             for (int j = 0; j < length; j++) {
  15.                 if (s.charAt(j) == strs[i].charAt(j)) {
  16.                     l++;
  17.                 } else {
  18.                     break;
  19.                 }
  20.             }
  21.             if (l < len) len = l;
  22.         }
  23.         return s.substring(0, len);
  24.     }
  25. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张国伟

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表