diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/ShortestPathTraversal.java" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/ShortestPathTraversal.java" new file mode 100644 index 0000000000000000000000000000000000000000..d48e5c43748956da8ce12a41e291a1753e44875f --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/ShortestPathTraversal.java" @@ -0,0 +1,88 @@ +package com.example.bootdemo; + +import java.util.*; + +public class ShortestPathTraversal { + static int[][] points = {{1, 1}, {1, 3}, {2, 2}, {4, 4}, {2, -2},{3, -1}, {-2, 2}, {-3, 4}, {-1, -2}, {-3, -3}}; + + static double euclideanDistance(int[] p1, int[] p2) { + double x1 = p1[0], y1 = p1[1]; + double x2 = p2[0], y2 = p2[1]; + return Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)); + } + + static List getShortestPathTraversal(int m, Set selected) { + int n = points.length; + // 生成子集的边权数组 + double[][] edges = new double[m][m]; + for (int i = 0; i < m; ++i) { + int rowIdx = 0; + for (int j = 0; j < n; ++j) { + if (selected.contains(j)) { + edges[i][rowIdx++] = euclideanDistance(points[selected.toArray(new Integer[0])[i]], points[j]); + } + } + } + // 状态压缩DP + int N = (int)Math.pow(2, m); + double[][] dp = new double[N][m]; + for (int i = 0; i < N; ++i) { + Arrays.fill(dp[i], Double.MAX_VALUE); + } + for (int i = 0; i < m; ++i) { + dp[1< path = new ArrayList<>(); + int currState = N-1; + int currNode = 0; + for (int i = 0; i < m; ++i) { + if (dp[currState][i] < dp[currState][currNode]) { + currNode = i; + } + } + path.add(selected.toArray(new Integer[0])[currNode]); + while (currState != 1< selected = new HashSet<>(n); + System.out.println("请依次输入 " + n + " 个数字:"); + for (int i = 0; i < n; i++) { // 循环输入每一个数字 + selected.add(input.nextInt()); + } + System.out.println(getShortestPathTraversal(n, selected)); + } +} diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/exercises.md" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/exercises.md" new file mode 100644 index 0000000000000000000000000000000000000000..865f91d336a1bee862f05898f459fd622460e2e6 --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/exercises.md" @@ -0,0 +1,27 @@ +# 查找坐标点之间最短的路径 +给定十个坐标点{{1, 1}, {1, 3}, {2, 2}, {4, 4}, {2, -2},{3, -1}, {-2, 2}, {-3, 4}, {-1, -2}, {-3, -3}},下标分别为0-9. +随机选择n个坐标点,n>=2,n<=10,找出遍历n个坐标点最近的路径。 + +## 输入描述 + +1、先提示输入坐标点的总个数 +2、依次输入n个坐标点,注意请输入不重复的坐标点,0<=坐标点<=9 + +## 输出描述 + +输出一个数组,显示输入的n个坐标点遍历的最短路径。 + +## 输入样例 + +4 +1 +2 +3 +4 + +## 输出样例 + +[4, 2, 1, 3] + +## 提示 +无 \ No newline at end of file diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/1.in" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/1.in" new file mode 100644 index 0000000000000000000000000000000000000000..b84706ed44ec7b57f14e5982eeb13fed0e5584e3 --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/1.in" @@ -0,0 +1,5 @@ +4 +1 +2 +3 +4 \ No newline at end of file diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/1.out" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/1.out" new file mode 100644 index 0000000000000000000000000000000000000000..13134bafb681bae76c65e714d4bdc14c8ba56c84 --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/1.out" @@ -0,0 +1 @@ +[4,2,1,3] \ No newline at end of file diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/10.in" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/10.in" new file mode 100644 index 0000000000000000000000000000000000000000..2c07467ec7ba00e16918df11a39efb4dd4695660 --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/10.in" @@ -0,0 +1,11 @@ +10 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 \ No newline at end of file diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/10.out" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/10.out" new file mode 100644 index 0000000000000000000000000000000000000000..b69f7082796d22f3b2f3d3844ed9f654db0b4656 --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/10.out" @@ -0,0 +1 @@ +不是 \ No newline at end of file diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/2.in" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/2.in" new file mode 100644 index 0000000000000000000000000000000000000000..9a4ddeacd37f2483a4c320099785e3fbdb084c17 --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/2.in" @@ -0,0 +1,3 @@ +2 +1 +2 \ No newline at end of file diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/2.out" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/2.out" new file mode 100644 index 0000000000000000000000000000000000000000..10c3731f10eee7f8cca28a8d19d8832e6b7c0317 --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/2.out" @@ -0,0 +1 @@ +[2,1] \ No newline at end of file diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/3.in" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/3.in" new file mode 100644 index 0000000000000000000000000000000000000000..aed998605bf2e3658c383fd81156eebee7063689 --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/3.in" @@ -0,0 +1,4 @@ +3 +1 +2 +3 \ No newline at end of file diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/3.out" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/3.out" new file mode 100644 index 0000000000000000000000000000000000000000..f5dff8928649b91f572f6f4f8818a1c26a986e97 --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/3.out" @@ -0,0 +1 @@ +[3, 2, 1] \ No newline at end of file diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/4.in" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/4.in" new file mode 100644 index 0000000000000000000000000000000000000000..b84706ed44ec7b57f14e5982eeb13fed0e5584e3 --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/4.in" @@ -0,0 +1,5 @@ +4 +1 +2 +3 +4 \ No newline at end of file diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/4.out" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/4.out" new file mode 100644 index 0000000000000000000000000000000000000000..e2bb763710e7d2655a95eab5bd08b5d18311f329 --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/4.out" @@ -0,0 +1 @@ +[4, 2, 1, 3] \ No newline at end of file diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/5.in" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/5.in" new file mode 100644 index 0000000000000000000000000000000000000000..ddc1f024efb159fb7f6d83191cdeee6bf826d71a --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/5.in" @@ -0,0 +1,6 @@ +5 +1 +2 +3 +4 +5 \ No newline at end of file diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/5.out" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/5.out" new file mode 100644 index 0000000000000000000000000000000000000000..f8430ca9bb16ff3e009a9da65a8fa7f62a986330 --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/5.out" @@ -0,0 +1 @@ +[4, 5, 2, 1, 3] \ No newline at end of file diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/6.in" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/6.in" new file mode 100644 index 0000000000000000000000000000000000000000..7d3b5f41759499b1b0a83296c56ba6a3a60b8200 --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/6.in" @@ -0,0 +1,7 @@ +6 +1 +2 +3 +4 +5 +6 \ No newline at end of file diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/6.out" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/6.out" new file mode 100644 index 0000000000000000000000000000000000000000..ac56ccc65a6db61bd573f1eae06b8c0b63c738a0 --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/6.out" @@ -0,0 +1 @@ +[6, 1, 3, 2, 5, 4] \ No newline at end of file diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/7.in" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/7.in" new file mode 100644 index 0000000000000000000000000000000000000000..0d224a86ac46eb6dffca7f6c5bc4d89deb2392a1 --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/7.in" @@ -0,0 +1,8 @@ +7 +1 +2 +3 +4 +5 +6 +7 \ No newline at end of file diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/7.out" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/7.out" new file mode 100644 index 0000000000000000000000000000000000000000..b497468b57dd746d4d9f10ce9d039ac1ea5a3c24 --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/7.out" @@ -0,0 +1 @@ +[7, 6, 1, 3, 2, 5, 4] \ No newline at end of file diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/8.in" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/8.in" new file mode 100644 index 0000000000000000000000000000000000000000..44796fc7fa1fa922dc3db56c0592113687fecd22 --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/8.in" @@ -0,0 +1,9 @@ +8 +1 +2 +3 +4 +5 +6 +7 +8 \ No newline at end of file diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/8.out" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/8.out" new file mode 100644 index 0000000000000000000000000000000000000000..61bfc37ec1598fd7b56e61c338e35583c0d11d54 --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/8.out" @@ -0,0 +1 @@ +[3, 1, 2, 5, 4, 8, 6, 7] \ No newline at end of file diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/9.in" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/9.in" new file mode 100644 index 0000000000000000000000000000000000000000..4ae31d2770a229b61ad4124f7b23635ac796e74f --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/9.in" @@ -0,0 +1,10 @@ +9 +1 +2 +3 +4 +5 +6 +7 +8 +9 \ No newline at end of file diff --git "a/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/9.out" "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/9.out" new file mode 100644 index 0000000000000000000000000000000000000000..fd975e578020b43b1255da9c7bc1a9ffebe600a7 --- /dev/null +++ "b/exercises/wumf/\344\270\255\347\255\211/\346\237\245\346\211\276\345\235\220\346\240\207\347\202\271\344\271\213\351\227\264\346\234\200\347\237\255\347\232\204\350\267\257\345\276\204/test_cases/9.out" @@ -0,0 +1 @@ +[9, 8, 4, 5, 2, 3, 1, 6, 7] \ No newline at end of file diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/ValidParentheses.java" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/ValidParentheses.java" new file mode 100644 index 0000000000000000000000000000000000000000..6d95a73812868ade0193341dff4ef47958cd320d --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/ValidParentheses.java" @@ -0,0 +1,42 @@ +package com.example.bootdemo; + +import java.util.Scanner; +import java.util.Stack; + +public class ValidParentheses { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + String str = sc.nextLine(); + boolean isValid = isValid(str); + System.out.println(isValid); + } + + public static boolean isValid(String s) { + if (s.length() % 2 == 1) { // 如果字符串长度为奇数则不可能完全匹配 + return false; + } + + Stack stack = new Stack<>(); + + for (char ch : s.toCharArray()) { + if (ch == '(' || ch == '[' || ch == '{') { // 左括号入栈 + stack.push(ch); + } else { // 右括号出栈 + if (stack.isEmpty()) { // 如果栈为空,则说明没有与该右括号匹配的左括号 + return false; + } + + char top = stack.peek(); // 获取栈顶元素 + + if ((ch == ')' && top != '(') || (ch == ']' && top != '[') || (ch == '}' && top != '{')) { // 匹配检查 + return false; + } + + stack.pop(); + } + } + + return stack.isEmpty(); // 栈内还有元素则说明不完全匹配 + } +} + diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/exercises.md" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/exercises.md" new file mode 100644 index 0000000000000000000000000000000000000000..0b60c876b12d9fad7dab283cf84e65f067cfb122 --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/exercises.md" @@ -0,0 +1,22 @@ +# 字符串判断 + +给定一个只包含 (、)、{、}、[、] 的字符串,判断字符串是否有效。一个字符串有效当且仅当所有括号都匹配,并且每个左括号都有相应的右括号与之对应。注意空字符串可被认为是有效字符串。 + +## 输入描述 + +输入一个字符串,字符串仅包含(、)、{、}、[、] + +## 输出描述 + +符合题目要求输出true,不符合题目要求出书false + +## 输入样例 + +"()" + +## 输出样例 + +true + +## 提示 +无 diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/1.in" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/1.in" new file mode 100644 index 0000000000000000000000000000000000000000..dd626a0f311e80501dee9549fc8e3d1a2ba3d01f --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/1.in" @@ -0,0 +1 @@ +() \ No newline at end of file diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/1.out" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/1.out" new file mode 100644 index 0000000000000000000000000000000000000000..f32a5804e292d30bedf68f62d32fb75d87e99fd9 --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/1.out" @@ -0,0 +1 @@ +true \ No newline at end of file diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/10.in" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/10.in" new file mode 100644 index 0000000000000000000000000000000000000000..5ae5be5608d5d865f32cee3302b5c5706be8d742 --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/10.in" @@ -0,0 +1 @@ +{{}()} \ No newline at end of file diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/10.out" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/10.out" new file mode 100644 index 0000000000000000000000000000000000000000..f32a5804e292d30bedf68f62d32fb75d87e99fd9 --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/10.out" @@ -0,0 +1 @@ +true \ No newline at end of file diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/2.in" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/2.in" new file mode 100644 index 0000000000000000000000000000000000000000..f46d387bf94c89b81aaec9cff2ee52d1f9ab4187 --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/2.in" @@ -0,0 +1 @@ +( \ No newline at end of file diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/2.out" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/2.out" new file mode 100644 index 0000000000000000000000000000000000000000..02e4a84d62c4b0fe9cca60bba7b9799f78f1f7ed --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/2.out" @@ -0,0 +1 @@ +false \ No newline at end of file diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/3.in" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/3.in" new file mode 100644 index 0000000000000000000000000000000000000000..9e26dfeeb6e641a33dae4961196235bdb965b21b --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/3.in" @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/3.out" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/3.out" new file mode 100644 index 0000000000000000000000000000000000000000..f32a5804e292d30bedf68f62d32fb75d87e99fd9 --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/3.out" @@ -0,0 +1 @@ +true \ No newline at end of file diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/4.in" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/4.in" new file mode 100644 index 0000000000000000000000000000000000000000..0637a088a01e8ddab3bf3fa98dbe804cbde1a0dc --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/4.in" @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/4.out" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/4.out" new file mode 100644 index 0000000000000000000000000000000000000000..f32a5804e292d30bedf68f62d32fb75d87e99fd9 --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/4.out" @@ -0,0 +1 @@ +true \ No newline at end of file diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/5.in" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/5.in" new file mode 100644 index 0000000000000000000000000000000000000000..00a55f04962d713c041c17c883bb5c28412427db --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/5.in" @@ -0,0 +1 @@ +[[]] \ No newline at end of file diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/5.out" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/5.out" new file mode 100644 index 0000000000000000000000000000000000000000..f32a5804e292d30bedf68f62d32fb75d87e99fd9 --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/5.out" @@ -0,0 +1 @@ +true \ No newline at end of file diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/6.in" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/6.in" new file mode 100644 index 0000000000000000000000000000000000000000..4b407095bf9bdb7e1b4e8bf971ed56cb4a5f0aff --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/6.in" @@ -0,0 +1 @@ +{[()]} \ No newline at end of file diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/6.out" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/6.out" new file mode 100644 index 0000000000000000000000000000000000000000..f32a5804e292d30bedf68f62d32fb75d87e99fd9 --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/6.out" @@ -0,0 +1 @@ +true \ No newline at end of file diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/7.in" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/7.in" new file mode 100644 index 0000000000000000000000000000000000000000..1e2a61a142b2bbdafa25afbdeb06d1cb5181bb2c --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/7.in" @@ -0,0 +1 @@ +{{{}} \ No newline at end of file diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/7.out" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/7.out" new file mode 100644 index 0000000000000000000000000000000000000000..02e4a84d62c4b0fe9cca60bba7b9799f78f1f7ed --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/7.out" @@ -0,0 +1 @@ +false \ No newline at end of file diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/8.in" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/8.in" new file mode 100644 index 0000000000000000000000000000000000000000..b6c5bb6cd63fb18aff969f2ea7a83e169ef21ad5 --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/8.in" @@ -0,0 +1 @@ +{()){ \ No newline at end of file diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/8.out" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/8.out" new file mode 100644 index 0000000000000000000000000000000000000000..02e4a84d62c4b0fe9cca60bba7b9799f78f1f7ed --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/8.out" @@ -0,0 +1 @@ +false \ No newline at end of file diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/9.in" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/9.in" new file mode 100644 index 0000000000000000000000000000000000000000..a3998cc033662bce69f433b7a6e6772a9315e60c --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/9.in" @@ -0,0 +1 @@ +())}{} \ No newline at end of file diff --git "a/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/9.out" "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/9.out" new file mode 100644 index 0000000000000000000000000000000000000000..02e4a84d62c4b0fe9cca60bba7b9799f78f1f7ed --- /dev/null +++ "b/exercises/wumf/\347\256\200\345\215\225/\345\255\227\347\254\246\344\270\262\345\210\244\346\226\255/test_cases/9.out" @@ -0,0 +1 @@ +false \ No newline at end of file