【Java笔试强训】day19编程题

目录

  • 编程题
    • 查找两个字符串a,b中的最长公共子串
    • 汽水瓶

编程题

查找两个字符串a,b中的最长公共子串

【Java笔试强训】day19编程题_第1张图片

import java.util.Scanner;

public class Main {

    //查找两个字符串a,b中的最长公共子串
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            String s1 = scanner.nextLine();
            String s2 = scanner.nextLine();
            System.out.println(stringchuan(s1,s2));
        }
    }

    private static String  stringchuan(String s1, String s2) {
        String str = "";
        if(s1.length() > s2.length()) {
            str = s1;
            s1 = s2;
            s2 = str;
        }
        int[][] dp = new int[s1.length() + 1][s2.length() + 1];
        int max = 0;
        int index = 0;
        for (int i = 1; i < s1.length() + 1; i++) {
            for (int j = 1; j < s2.length() + 1; j++) {
                if(s1.charAt(i - 1) == s2.charAt(j - 1)) {
                    dp[i][j] = dp[i - 1][j - 1] + 1;
                }
                if(dp[i][j] > max) {
                    max = dp[i][j];
                    index = i;
                }
            }
        }
        return s1.substring(index - max,index);
    }
}

汽水瓶

【Java笔试强训】day19编程题_第2张图片

import java.util.Scanner;


public class Main {
    //汽水瓶
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int n = scanner.nextInt();
            if(n == 0) {
                break;
            }else {
                System.out.println(n/2);
            }
        }
    }
}

你可能感兴趣的:(【Java笔试强训】48day,java,开发语言,算法)