腾讯笔试-最少回文串

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 *
 **/
public class Main5 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        String s = scanner.next();
        int q = scanner.nextInt();
        int[][] query=new int[q][2];
        for (int i = 0; i < query.length; i++) {
            for (int j = 0; j < 2; j++) {
                query[i][j]= scanner.nextInt();
            }
        }
        for (int[] ints : query) {
            String temp = s.substring(ints[0] - 1, ints[1]);
            List<List<String>> lists=new ArrayList<>();
            List<String> list=new ArrayList<>();
            backtracking(temp,lists,list);
            System.out.println(minSize(lists));
        }
    }
    private static int minSize(List<List<String>> lists){
        int min=Integer.MAX_VALUE;
        for (List<String> list : lists) {
            min= Math.min(min,list.size());
        }
        return min;
    }
    private static void backtracking(String temp, List<List<String>> lists, List<String> list) {
        if (temp.length() == 0) {
            lists.add(new ArrayList<>(list));
            return;
        }
        for (int i = 0; i < temp.length(); i++) {
            if (isHuiWen(temp, 0, i)) {
                list.add(temp.substring(0,i+1));
                backtracking(temp.substring(i+1), lists, list);
                list.remove(list.size()-1);
            }
        }
    }
    private static boolean isHuiWen(String s,int start,int end){
        while (start < end) {
            if (s.charAt(start) != s.charAt(end)) {
                return false;
            }
            start++;
            end--;
        }
        return true;
    }

}

#笔试题目##腾讯#
全部评论
请问你是test全过了吗
点赞 回复
分享
发布于 2020-08-27 18:18
还没来得及粘贴,时间到了
点赞 回复
分享
发布于 2020-08-27 18:23
滴滴
校招火热招聘中
官网直投
题目大概能发下吗
点赞 回复
分享
发布于 2020-08-27 20:55

相关推荐

2 收藏 评论
分享
牛客网
牛客企业服务