拼多多2019校园招聘 正式批笔试 2018.8.30 第四题 拼词游戏

拼词游戏:原图来源自 https://blog.csdn.net/whl_program/article/details/82230415

4-1.png

4-2.png

4-2.png

4-3.png

 

 

java版:dfs深搜

public class Main{private static boolean flag=false;                                 //标志位private static Set  set=new HashSet<>();                   //存放所有单词private static List [] li=new ArrayList [10];           //字符数组private static StringBuilder SB=new StringBuilder();               //存放暂时的字符private static String result=null;                                 //最终结果static {for (int j = 0; j < 10; j++) {                                 //初始化字符list数组li[j]=new ArrayList();}}public static void main(String[] args) {		 Scanner in=new Scanner(System.in);int N=in.nextInt();int L=in.nextInt();		 		 for (int i = 0; i < N; i++) {                               //存入单词和字符String str=in.next();set.add(str);for (int j = 0; j < L; j++) {char ch=str.charAt(j);if(!li[j].contains(ch)) {li[j].add(ch);}      }}for (int i = 0; i < L; i++) {                             //对字符list进行排序Collections.sort(li[i]);}dfs(0,L,SB);if(result!=null) {System.out.println(result);}else {System.out.println('-');}    }public static void dfs(int id,int m,StringBuilder sb) {                        //深度搜索if(id>=m) { if(set.contains(sb.toString())) {return;}			  else {result=sb.toString();flag=true;return;}				  }int i=0;while(i

python版:使用库函数,计算笛卡尔积

from itertools import productdef sol(words:list):N = len(words)L = len(words[0])sets = [[0 for j in range(26)] for i in range(L)]for i in range(L):for j in range(N):sets[i][ord(words[j][i]) - 65] += 1sets = [[chr(i+65) for i in range(len(s)) if s[i] != 0] for s in sets]s = set(words)print(sets)for w in product(*sets):w = "".join(w)if w not in s:return welse:return "-"

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部