牛客0231号 level
获赞
219
粉丝
2
关注
0
看过 TA
2
复旦大学
2017
C++
IP属地:未知
暂未填写个人简介
私信
关注
2017-02-24 15:53
复旦大学 C++
RT
投递美团等公司6个岗位 >
0 点赞 评论 收藏
分享
2016-11-28 09:42
已编辑
复旦大学 C++
0 点赞 评论 收藏
分享
2016-09-20 17:15
已编辑
复旦大学 C++
0 点赞 评论 收藏
分享
2016-07-25 15:52
已编辑
复旦大学 C++
rt
投递阿里巴巴集团等公司10个岗位 >
0 点赞 评论 收藏
分享
2016-07-21 09:51
已编辑
复旦大学 C++
rt
投递携程等公司10个岗位 >
0 点赞 评论 收藏
分享
2016-04-21 10:06
已编辑
复旦大学 C++
有没有写完2道及以上的选手?分享下经验
搁浅的鱼儿:http://www.nowcoder.com/discuss/5197?type=1&order=0&pos=2&page=1 http://www.nowcoder.com/discuss/5195?type=0&order=0&pos=10&page=0 http://www.nowcoder.com/discuss/5194?type=1&order=0&pos=4&page=0
投递阿里巴巴集团等公司10个岗位 >
0 点赞 评论 收藏
分享
2016-04-20 10:12
复旦大学 C++
M00N:/* 题目:判断给定的字符串组, 将字符串排列后,是否存在一种排列,使字符串能够连成一串。 * 即前一个字符串的最后一个字符,等于后一个字符串的第一个字符。 * 如:["abcd","def","fgh","hij"]满足要求 * ["abcd","def","ggh","hij"]不满足要求 * 思路:典型的全排列问题 * 将字符串进行全排列,对每一种排列判断是否满足要求 * 参考: * 递归解决全排列生成算法 http://blog.csdn.net/xiazdong/article/details/7986015 */ //pass public class WordListOrder { public static int canArrangeWords(String arr[]) { boolean found = perm(arr, 0, arr.length - 1); if (found) { return 1; } else { return - 1; } } public static boolean perm(String arr[], int begin, int end) { if (begin == end) { if (check(arr)) {//判断是否满足要求 return true; } else { return false; } } else { boolean found = false; for (int i = begin; i <= end; i++) { swap(arr, begin, i); found = perm(arr, begin + 1, end); if (found) {//符合要求直接退出 break; } swap(arr, begin, i); } return found; } } public static void swap(String[] arr, int x, int y) { String temp = arr[x]; arr[x] = arr[y]; arr[y] = temp; } //判断是否符合要求,即前一个字符串的最后一个字符等于当前字符串的第一个字符 public static boolean check(String[] arr) { for (int i = 1; i < arr.length; i++) { if (arr[i].charAt(0) != arr[i - 1].charAt(arr[i - 1].length() - 1)) { return false; } } return true; } // public static void main(String args[]) { // String[] arr = new String[]{"abcd","defg","ghij","okl"}; // int result = canArrangeWords(arr); // System.out.println(result); // } }
投递百度等公司6个岗位 >
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客企业服务