关注
一考试就歇菜,就第一道题a了25。感觉题都见过,下来又会写了,第二题可以参考一下这个,就是一个简单的递归就可以了,当然在使用优先队列排序的时候还要再改一下,因为字符串比较大小的时候是会考虑小数点的,可以先把字符串转成double类型之后在再进行比较。
main() {
String str = "1200130";
PriorityQueue<String[]> queue = new PriorityQueue<String[]>((a,b)->{
double x1 = Double.valueOf(a[0]);
double x2 = Double.valueOf(b[0]);
if(x1!=x2) {
return (int)(x1 - x2);
}
Double y1 = Double.valueOf(a[1]);
Double y2 = Double.valueOf(b[1]);
return (int)(y1 - y2);
});
StringBuilder builder = new StringBuilder();
dfs(str,0,queue);
while(!queue.isEmpty()) {
String[] poll = queue.poll();
builder.append(poll[0]);
builder.append(",");
builder.append(poll[1]);
if(queue.isEmpty()){
continue;
}
builder.append(",");
}
System.out.println(builder.toString());
}
public void dfs(String str, int index,PriorityQueue<String[]> queue) {
if(index==str.length()){ // 以0开头或者走到了尽头
return;
}
if(str.charAt(index)=='0'||(index+1<str.length()&;&;str.charAt(index+1)=='0')){
dfs(str,index+1,queue);
return;
}
String l = str.substring(0,index+1);
String r = str.substring(index+1,str.length());
List<String> left = getAllNums(l);
List<String> right = getAllNums(r);
for(int j = 0; j < left.size(); j++) {
for(int k = 0; k < right.size(); k++) {
queue.add(new String[]{left.get(j),right.get(k)});
}
}
dfs(str,index+1,queue);
}
public List<String> getAllNums(String str){
///不以0结尾
List<String> ans = new ArrayList<>();
ans.add(str);
if(str.charAt(str.length()-1)=='0'){
return ans;
}
for(int i = 1; i < str.length()-1; i++) {
if (str.charAt(i+1)==0){
continue;
}
ans.add(str.substring(0,i) + "." + str.substring(i,str.length()));
}
return ans;
}
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
10-22 12:03
山东大学 Java
程序员小白条:26届一般都得有实习,项目可以随便写的,如果不是开源社区的项目,随便包装,技术栈也是一样,所以本质应该找学历厂,多投投央国企和银行,技术要求稍微低一点的,或者国企控股那种,纯互联网一般都得要干活 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 2025秋招体验点评 #
18437次浏览 165人参与
# 哪些公司真双非友好? #
45418次浏览 207人参与
# 京东开奖 #
526743次浏览 2848人参与
# 你听到的“最没用”的秋招建议 #
3819次浏览 38人参与
# 薪资要看总包还是月薪? #
5748次浏览 75人参与
# 什么样的公司千万别去 #
5167次浏览 38人参与
# 联影求职进展汇总 #
74894次浏览 428人参与
# 如果公司给你放一天假,你会怎么度过? #
26103次浏览 147人参与
# 校招阶段,学历VS技术哪个更重要? #
52055次浏览 335人参与
# 工作以后,你父母对你啥态度 #
2275次浏览 37人参与
# 你在职场上见过哪些“水货”同事 #
8058次浏览 62人参与
# 找工作,行业重要还是岗位重要? #
81417次浏览 1656人参与
# 欣旺达工作体验 #
18659次浏览 43人参与
# 你觉得找工作该拿大厂还是小厂练手 #
218758次浏览 1792人参与
# 通信硬件知识分享 #
38395次浏览 524人参与
# 联影医疗求职进展汇总 #
30099次浏览 126人参与
# 简历无回复,你会继续海投还是优化再投? #
108648次浏览 832人参与
# 材料专业就业可以去哪些企业岗位 #
47172次浏览 368人参与
# 外包能不能当跳板? #
51210次浏览 250人参与
# 2023届毁约公司名单 #
224224次浏览 1048人参与
# 校招薪资来揭秘 #
12502次浏览 53人参与