关注
public class WordArrange {
public static void swap(int begin,int end,String[]arr){ //交换数组中的两个元素
if(begin==end||arr[begin].equals(arr[end]))return;
String temp=arr[begin];
arr[begin]=arr[end];
arr[end]=temp;
}
public static int getAllOrder(int begin,int end,String[]arr) throws Exception{ //获取全排列
//boolean find=false;
if(begin==end){
if(check(arr)==1){
throw new Exception(); /*******!出现后以异常方式跳出递归!*********/
}
}
else{
for(int i=begin;i<=end;i++){
swap(begin,i,arr);
getAllOrder(begin+1,end,arr);
swap(i,begin,arr);
}
}
return -1;
}
public static int check(String[]arr){ //在全排列中检查是否有符合要求的排列
for(int i=0;i<arr.length-1;i++){
if(arr[i].charAt(arr[i].length()-1)!=arr[i+1].charAt(0))return 0;
}
return 1;
}
public static int canArrangeWords(int num,String[]arr){
//判断输入条件:输入数组长度是否合适、输入数组中每个字符串长度是否合适、输入字母是否是小写。。。。
if(num<1||num>100||num!=arr.length)return 0;
int []len=new int[num];
char []head=new char[num];
char []tail=new char[num];
// String []head_tail=new String[num];
for(int i=0;i<num;i++){
len[i]=arr[i].length();
if(len[i]<2||len[i]>100)return 0;
head[i]=arr[i].charAt(0);
if(head[i]<'a'||head[i]>'z')return 0;
tail[i]=arr[i].charAt(len[i]-1);
if(tail[i]<'a'||tail[i]>'z')return 0;
//head_tail[i]=Character.toString(head[i])+Character.toString(tail[i]);
}
//采用全排列思想,并通过异常方式在找到符合条件的排列时跳出递归。
try {
return getAllOrder(0,num-1,arr);
} catch (Exception e) {
// TODO Auto-generated catch block
return 1;
}
}
public static void main(String[]args){
int num=5;
String[]arr={"aa","cab","bc","cd","de"};
System.out.print(canArrangeWords(num,arr));
}
}
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 25届游戏客户端开发求职总结1.3W
- 2... 广州25应届计算机 Java想转行1.0W
- 3... 回望春招路~草草用如履薄冰带过5065
- 4... 【26届四段大厂】大二字节&腾讯offer 投递技巧保姆级教程4417
- 5... 955和996的真正区别4327
- 6... 差不多还有一周就要去团子实习了,部门自我感觉不是很核心,但是现在比较焦虑。清楚自己是一个八股选手,项目经验几乎是0,比较依赖ai,外卖点评什么的都没敲过,自己的学习能力应该算中等?很害怕进去之后比较push,然后发现我是个水货把我提前开除了,想问问这段时间可以做些什么准备呢?速通一下外卖项目跟着看一遍视频?(有点担心跟着敲一遍时间不够)?3952
- 7... 从我家亲戚看学历论和努力论3470
- 8... 腾讯 CSIG 三面 面经 已OC!~3420
- 9... 我对面的同事,入职一个月没说话2771
- 10... 双一流本的春招结束 去送外卖了2679
正在热议
更多
# 一人一个landing小技巧 #
32421次浏览 609人参与
# 选offer应该考虑哪些因素 #
2875次浏览 72人参与
# 我的求职总结 #
2636次浏览 58人参与
# 你想留在一线还是回老家? #
33331次浏览 411人参与
# 聊聊你的职场新体验 #
153287次浏览 1353人参与
# 互联网公司爆料 #
118234次浏览 669人参与
# 四大天坑是哪四家? #
68944次浏览 198人参与
# 58同城求职进展汇总 #
30864次浏览 246人参与
# 三一集团提前批进度交流 #
20066次浏览 129人参与
# 你们公司哪个部门最累? #
12619次浏览 105人参与
# 大学最后一个寒假,我想…… #
34996次浏览 444人参与
# 米哈游工作体验 #
13652次浏览 108人参与
# 你认为工作的意义是什么 #
138310次浏览 996人参与
# 你小时候最想从事什么职业 #
88414次浏览 1646人参与
# 牛友们的论文几号送审 #
32726次浏览 698人参与
# 查收我的offer竞争力报告 #
180214次浏览 1190人参与
# 你觉得机械有必要实习吗? #
5578次浏览 60人参与
# 你最满意的offer薪资是哪家公司? #
24259次浏览 125人参与
# 这些公司卡简历很严格 #
31331次浏览 155人参与
# 你们公司几号发工资 #
15993次浏览 106人参与