Java 给定一个包含2个数字的字符串列表,查找从开始到结束的路径

Java 给定一个包含2个数字的字符串列表,查找从开始到结束的路径,java,string,Java,String,我正试图在最快的时间内解决这个问题,以便将字符串连接在一起 您将获得一个由两个数字组成的N-1字符串的列表`ab,其中a≠B和1≤A、 B≤N.返回一个数组,该数组给出从开始到路由结束的顺序 范例 Input Output 3 "3 2" {3,2,4,1} "4 1" "3 4" Input Output 2 &

我正试图在最快的时间内解决这个问题,以便将字符串连接在一起

您将获得一个由两个数字组成的N-1字符串的列表`ab,其中a≠B和1≤A、 B≤N.返回一个数组,该数组给出从开始到路由结束的顺序

范例

Input                     Output
3
"3 2"                     {3,2,4,1}
"4 1"
"3 4"

Input                      Output
2
"1 2"                      {1,2,3}
"1 3"

起初,我曾想过使用Hashmap来解决这个问题,但我意识到可能有多个具有不同值的键,我不知道如何继续。有没有更快的方法来解决这个问题

public class StringContUsingHashMap {
    public static void main(String[] args) throws IOException {
        Map<Integer, Integer> keyValue= new HashMap<Integer, Integer>(noOfStr);
        BufferedReader bR = new BufferedReader(new InputStreamReader(System.in));
        int noOfStr = Integer.parseInt(bR.readLine());
        int[] store = new int[noOfStr];
        for (int j =0; j< noOfStr-2; j++){
            String[] keyValues = bR.readLine().split(" ");
            keyValue.put(Integer.parseInt(keyValues[0]),Integer.parseInt(keyValues[1]));
        }
        String[] keyValues = bR.readLine().split(" ");
        int first =Integer.parseInt(keyValues[0]);
        int last=Integer.parseInt(keyValues[1]);
        keyValue.put(first,last);
        int i =0;
        for (;first != last; first = keyValue.get(first)){
            store[i] =first;
            i++;
        }
        System.out.println(store.toString());
    }
}

从测试数据来看,在输出中,似乎应该将数字收集到一个集合中,而不应重复保持插入顺序,也就是说,可以使用LinkedHashSet:

静态设置进程字符串。。。成对的{ 返回数组.streampairs .flatmap->Arrays.streamp.split\\s+ .mapInteger::valueOf .collectCollectors.toCollectionLinkedHashSet::新建; } 测验

System.out.printlnprocess3 2,4 1,3 4;//[3, 2, 4, 1] System.out.printlnprocess12,13;//[1, 2, 3]
我可能有点迟钝,但我甚至不知道这里有什么问题。字符串前的第一个数字是什么?在这种情况下,关键和价值的含义是什么?谁是什么价值的关键?这是如何连接字符串的?在这种情况下,路线意味着什么?从哪里到哪里的路线?很抱歉ps.没有向下投票,不是我吗第一个数字是给定的N个字符串。这里的关键和价值是我试图解决这个问题。确定顺序后,我计划使用字符串生成器将所有字符串连接在一起,使字符串cont为O1。\u将为您提供一个包含两个数字a B的N个字符串的列表,其中a≠B和1≤A、 B≤但在第一个例子中,B=4`和B>N=3。在第二个示例中相同:N=2