zoukankan      html  css  js  c++  java
  • 《程序员代码面试指南》第五章 字符串问题 数组中两个字符串的最小距离

    题目

    数组中两个字符串的最小距离
    

    java代码

    package com.lizhouwei.chapter5;
    
    /**
     * @Description: 数组中两个字符串的最小距离
     * @Author: lizhouwei
     * @CreateDate: 2018/4/25 20:30
     * @Modify by:
     * @ModifyDate:
     */
    public class Chapter5_12 {
        public int minDistance(String[] strings, String str1, String str2) {
            if (str1 == null || str2 == null) {
                return -1;
            }
            if (str1.equals(str2)) {
                return 0;
            }
            int last1 = -1;
            int last2 = -1;
            int min = Integer.MAX_VALUE;
            for (int i = 0; i < strings.length; i++) {
                if (str1.equals(strings[i])) {
                    last1 = i;
                    min = Math.min(min, last2 == -1 ? min : last1 - last2);
                }
                if (str2.equals(strings[i])) {
                    last2 = i;
                    min = Math.min(min, last1 == -1 ? min : last2 - last1);
                }
            }
            return min == Integer.MAX_VALUE ? -1 : min;
        }
    
        //测试
        public static void main(String[] args) {
            Chapter5_12 chapter = new Chapter5_12();
            String[] str = {"1", "3", "3", "3", "2", "3", "1"};
            int result = chapter.minDistance(str, "1", "2");
            System.out.println("{"1","3","3","3","2","3","1"}中:");
            System.out.println("1和2的最小距离:" + result);
        }
    }
    
    

    结果

  • 相关阅读:
    windows下vagrant使用及工作环境配置
    使用docker搭建lnmp环境
    Docker常用命令
    [docker] 管理docker容器中的数据
    python初始化父类错误
    Linux--
    用少于2MB内存存下5百万个介于0到1千万之间的整数
    k路归并:数组、链表
    剑指offer新思路
    阿里电话面试
  • 原文地址:https://www.cnblogs.com/lizhouwei/p/8947609.html
Copyright © 2011-2022 走看看