自己搞清楚的第一个树结构,用树生成全排列
import java.util.Arrays; import java.util.HashSet; import java.util.LinkedList; import java.util.Scanner; import java.util.Stack; public class Main07 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()) { String str = sc.nextLine(); str = str.trim(); String[] strs = str.split("\\s"); //划分 int count = Integer.parseInt(strs[0]); String[] dict = Arrays.copyOfRange(strs, 1, count+1); //System.out.println(Arrays.asList(dict).toString()); //看兄弟单词,组合所有兄弟单词; String bro = strs[count + 1]; char[] charArray = bro.toCharArray(); LinkedList<String> linkedList = new LinkedList<String>(); perm(charArray,new Stack<>(),linkedList); linkedList = new LinkedList<String>(new HashSet<>(linkedList)); linkedList.remove(bro); //查找 int co = 0; for (int i = 0; i < linkedList.size(); i++) { for (int j = 0; j < dict.length; j++) { if(linkedList.get(i).equals(dict[j])) { co++; } } } System.out.println(co); //输出指定目录 String orderstr = strs[count + 2]; System.out.println(dict[Integer.parseInt(orderstr)]); dict = null; } } private static void perm(char[] charArray, Stack stack, LinkedList<String> linkedList) { // TODO Auto-generated method stub if(charArray.length==0) { String a = ""; for (int i = 0; i < stack.size(); i++) { a=a+stack.get(i); } linkedList.add(a); } for (int i = 0; i < charArray.length; i++) { char[] Array = new char[charArray.length-1]; System.arraycopy(charArray, 0, Array, 0, i); System.arraycopy(charArray, i+1, Array, i, charArray.length-i-1); stack.push(charArray[i]); perm(Array,stack,linkedList); stack.pop(); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构