String

Description:

Write a function to find the longest common prefix string amongst an array of strings.

Example

For strings "ABCD", "ABEF" and "ACEF", the LCP is "A"

For strings "ABCDEFG", "ABCEFG" and "ABCEFA", the LCP is "ABC"

测试用例想全面:

  1. 数组为空或为null
  2. 只有一个元素
  3. 全部完全匹配
  4. 匹配部分

my Solution:

public class Solution {
public String longestCommonPrefix(String[] strs) {
String prefix = "";
if (strs.length == 1) return strs[0];
else if (strs.length > 1) {
prefix = strs[0];
int index = 0;
Integer[] temp = new Integer[strs.length - 1];
for (int i = 1; i < strs.length; i++) {
for (index = 0; index < prefix.length() && index < strs[i].length(); index++) {
if (prefix.charAt(index) != strs[i].charAt(index)) {
break;
}
}
temp[i - 1] = index;
}
index = Collections.min(Arrays.asList(temp));
return prefix.substring(0, index);
}
return prefix;
}
}

如何从数组中获得最大/最小数:

Collections.min(Arrays.asList(array));

如何跳出多层嵌套循环:

boolean flag = false;
for (; !flag; ) {
for (; ;) {
if (condition) {
flag = true;
break;
}
}
}

我的解法还是太复杂,没有考虑到indexOf的利用。

Best Solution:

public String longestCommonPrefix(String[] strs) {
if(strs == null || strs.length == 0) return "";
String pre = strs[0];
int i = 1;
while(i < strs.length){
while(strs[i].indexOf(pre) != 0)
pre = pre.substring(0,pre.length()-1);
i++;
}
return pre;
}

最新文章

  1. Kafka1 利用虚拟机搭建自己的Kafka集群
  2. java list中的对象去重原理
  3. asp.net 之 GC (垃圾回收机制)
  4. xcode设置 - App内存暴增
  5. POJ_3685_Matrix_(二分,查找第k大的值)
  6. Android NDK编程,引入第三方.so库
  7. [置顶] MyEclipse显示中文界面,在线安装教程
  8. javascript实现页面滚屏效果
  9. C++读取csv表格文件到vector
  10. Just for Today
  11. 查看三种MySQL字符集的方法(转)
  12. Retrofit2 原理解析
  13. Django 编写模板并渲染的示例
  14. 自适应手机网站meta name代码
  15. day61
  16. 【oneday_onepage】——China&#39;s Internet users grow to 591 million
  17. JQuery------各种版本下载
  18. WAF Bypass FUZZ小脚本
  19. centos7安装uwsgi报错
  20. 在Vue项目里面使用d3.js

热门文章

  1. ------ 开源软件 Tor(洋葱路由器,构建匿名网络的方案之一)源码分析——主程序入口点(二)------
  2. Kafka最佳实践
  3. JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别
  4. asp.net WebApi 使用总结
  5. kubernetes1.9中部署dashboard
  6. Python3数据库模块(sqlite3,SQLite3)
  7. 转:命令passwd报错因inode节点处理记录
  8. ASP.NET MVC编程——控制器
  9. MySQL数据库学习四 存储引擎和数据类型
  10. 【Django】 初步学习