字符串之数组中两个字符串的最小距离
来源:互联网 发布:php软件指的是什么 编辑:程序博客网 时间:2024/05/22 13:30
题目:
给定一个字符串数组strs, 再给定两个字符串str1和str2,返回在strs中str1和str2的最小距离,如果str1和str2为null,或者不再strs中,都返回-1
列如:
strs = {"1","3","3","2","3","1","3"} ,str1 = "1" str2 = "2" 返回2
strs = {"CD"},str1 = "CD",str2="AC" 返回-1
代码实现:
package com.chenyu.string.cn;public class MinDistance {public static void main(String[] args) {String[] ss = {"a", "b", "c", "d", "c", "a", "d"};int result = minDistance(ss, "a", "d");System.out.println(result);}public static int minDistance(String[] target, String str1, String str2) {if (target == null || target.length == 0) {return -1;} if (str1 == null || str2 == null) {return -1;}boolean check1 = true, check2 = true;for (String s : target) {if (str1.equals(s)) {check1 = false;} if (str2.equals(s)) {check2 = false;}}if (check1 || check2) {return -1; } if (str1.equals(str2)) {return 0;}int min = Integer.MAX_VALUE;int last1 = -1;int last2 = -1;for (int i = 0; i < target.length; i++) {if (target[i].equals(str1)) {min = Math.min(min, last2 == -1 ? min : i - last2);last1 = i;}if (target[i].equals(str2)) {min = Math.min(min, last1 == -1 ? min : i -last1);last2 = i;}}return min == Integer.MAX_VALUE ? -1 : min;}}
运行结果:
1
0 0
- 字符串之数组中两个字符串的最小距离
- 数组中两个字符串的最小距离
- 字符串问题---数组中两个字符串的最小距离
- 字符串数组中两个字符串的最小距离
- 求数组中两个字符串的最小距离 Python 版
- 数组中两个元素的最小距离
- 数组中两个元素最小的距离
- 数组中两个元素的最小距离
- 两个字符串的距离
- Submission Details (两个字符串的最小距离)【leetcode】
- 两个字符串的最小编辑距离 Edit Distance
- 用最小编辑距离求两个字符串的不同
- 【谷歌面试题】求数组中两个元素的最小距离
- 求数组中两个元素的最小距离
- 求数组中两个元素的最小距离
- 计算两个字符串的距离
- 计算两个字符串的距离
- 计算两个字符串的距离
- Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用
- springMVC笔记系列(23)——拦截器及其在乱码问题和登录问题的应用实现
- 有元函数自我总结
- 锋利的jquery初体验--折叠菜单练习
- 蓝桥杯基础 字母图形
- 字符串之数组中两个字符串的最小距离
- 从面试开始_场景带参初始化
- NYOJ笨小熊
- 什么是数组名?----一个让你吃惊的事实!
- 五的倍数
- .net Core 自我学习随笔(三)——我们整个数据库如何?
- POJ 2528 Mayor's posters
- 内核裁剪步骤
- Session保存到Memcache中,解决读取数据慢问题