zoukankan      html  css  js  c++  java
  • 字符串最小变换次数

    题目描述

    给定两个字符串,已知可以使用三种方式进行变换
    1. 插入一个字符
    2. 删除一个字符
    3. 更改一个字符
    请设计一个算法,找到两个字符串之间的经历几次最小变换,可以字符串1转换成字符串2

    输入描述:

    输入两个字符串,字符串的长度<=1000

    输出描述:

    最小变换次数
    示例1

    输入

    hello
    helle

    输出

    1

    import java.util.Scanner;
    public class Main {
    
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            String str1 = "#" + scanner.next();
            String str2 = "#" + scanner.next();
            int[][] dp = new int[str1.length()][str2.length()];
    
            // 初始化
            for (int i = 1; i < str1.length(); i++)
                dp[i][0] = i;
            for (int i = 1; i < str2.length(); i++)
                dp[0][i] = i;
    
            for (int i = 1; i < str1.length(); i++) {
                for (int j = 1; j < str2.length(); j++) {
                    if (str1.charAt(i) == str2.charAt(j))
                        dp[i][j] = dp[i - 1][j - 1];
                    else {
                        dp[i][j] = Math.min(dp[i - 1][j - 1],
                            Math.min(dp[i][j - 1], dp[i - 1][j])) + 1;
                    }
                }
            }
            System.out.println(dp[str1.length() - 1][str2.length() - 1]);
        }
    }
  • 相关阅读:
    css颜色表示法&颜色表
    css单位
    DOM与BOM
    position定位
    grid layout
    Linux禁止Ping方法
    tracert(traceroute)与ping
    服务器负载均衡技术的原理
    Struts2与webx的比较
    SpringAOP的原理
  • 原文地址:https://www.cnblogs.com/hetaoyuan/p/11450775.html
Copyright © 2011-2022 走看看