奇安信笔试题

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

public class Main {
    static List<List<String>> res=new LinkedList<>();
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        int n=in.nextInt();
        in.nextLine();
        String[] str=in.nextLine().split(" ");
        LinkedList<String> track=new LinkedList<>();
        HashMap<String, Integer> map=new HashMap<>();
        backtrack(str,track,map);
        for (int i = 0; i <res.size() ; i++) {
            for (int j = 0; j <res.get(i).size() ; j++) {
                System.out.print(res.get(i).get(j));
                if(j<res.get(i).size()-1){
                    System.out.print("-");
                }else {
                    System.out.print(" ");
                }
            }
        }
        System.out.println(res.size());
    }

    private static void backtrack(String[] str, LinkedList<String> track,HashMap<String, Integer> map) {
        if(track.size()==str.length){
            if(map.get("A")<map.get("B")){
                res.add(new LinkedList<>(track));
                return;
            }
        }
        for (int i = 0; i <str.length ; i++) {
            if(track.contains(str[i])){
                continue;
            }
            track.add(str[i]);
            map.put(str[i],track.indexOf(str[i]));
            backtrack(str,track,map);
            map.remove(track.removeLast());
        }
    }
}
#笔试题目#
全部评论
各位大佬,可否指导一下代码哪里错了? 奇安信第一题,给出n个字母,必须有A,B,并且输出A必须在B的前面,自测没问题,但是测试用例为0
1 回复 分享
发布于 2021-04-14 17:21
大佬们两道A了多少
点赞 回复 分享
发布于 2021-04-14 21:18
思路一样,今天没时间写完这题,刚刚写完本地自测没问题
点赞 回复 分享
发布于 2021-04-14 21:17
+1
点赞 回复 分享
发布于 2021-04-14 17:53
请问楼主今天笔试的时候出现过自测不显示输出的情况吗?
点赞 回复 分享
发布于 2021-04-14 17:16

相关推荐

牛客83700679...:简历抄别人的,然后再投,有反馈就是简历不行,没反馈就是学历不行,多投多改只要技术不差机会总会有的
点赞 评论 收藏
分享
每晚夜里独自颤抖:要求太多的没必要理
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务