[一天至少一题直到ICPC开赛030]解题: Vacation (1/20)

Vacation

题目连结

解题

使用演算法

DP

LCS(Longest Common Subsequence / 找共同子序列)

LCS演算法

getline 两个string建立dp二微阵列LCS 演算法找厨共同最大子序列

程式码(java)

import java.util.*;public class Vacation {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        int c = 1;        while (true) {            String s1 = sc.nextLine();            if (s1.equals("#")) {                break;            }            String s2 = sc.nextLine();                        // dp ==> LCS            int[][] dp = new int[s1.length() + 1][s2.length() + 1];            for (int i = 0; i <= s1.length(); i++) {                Arrays.fill(dp[i], 0);            }            for (int i = 0; i < s1.length(); i++) {                for (int j = 0; j < s2.length(); j++) {                    if (s1.charAt(i) == s2.charAt(j)) {                        dp[i + 1][j + 1] = dp[i][j] + 1;                    } else {                        dp[i + 1][j + 1] = Math.max(dp[i][j + 1], dp[i + 1][j]);                    }                }            }            System.out.println("Case #" + c + ": you can visit at most " + dp[s1.length()][s2.length()] + " cities.");            c++;        }        sc.close();    }}

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章