全新题目
【题目难度 | 中等】※※※
【编程题目 |200分】猜密码【2022 Q2考试题】
时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++262144K,其他语言524288K
64bit IO Format:%lld
本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,
编码后请点击”保存并调试“按钮进行代码提交。
■ 题目描述
小杨申请了一个保密柜,但是他忘记了密码。只记得密码都是数字,而且所有数字都是不重复的。
请你根据他记住的数字范围和密码的最小数字数量,帮他算下有哪些可能的组合,规则如下:
1、输出的组合都是从可选的数字范围中选取的,且不能重复;
2、输出的密码数字要按照从小到大的顺序排列,密码组合需要按照字母顺序,从小到大的顺序排序。
3、输出的每一个组合的数字的数量要大于等于密码最小数字数量;
4、如果可能的组合为空,则返回“None”
输入描述:
1、输入的第一行是可能的密码数字列表,数字间以半角逗号分隔
2、输入的第二行是密码最小数字数量
输出描述:
可能的密码组合,每种组合显示成一行,每个组合内部的数字以半角逗号分隔,从小到大的顺序排列。
输出的组合间需要按照字典序排序。
比如:
2,3,4放到2,4的前面
示例1 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
2,3,4
2
输出
2,3
2,3,4
2,4
3,4
说明
最小密码数量是两个,可能有三种组合:
2,3
2,4
3,4
三个密码有一种:
2,3,4
代码实现
C++解法一
#include<bits/stdc++.h> using namespace std; vector<string>List; void Split(string input, vector<string> &output, string pattern) { string::size_type pos; input += pattern;
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看C++解法二
#include<bits/stdc++.h> using namespace std;
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看JAVA解法一
import java.util.*; public class Main { public static List<String> list = new ArrayList<>(); public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[] strings = sc.nextLine().split(",");
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看JAVA解法二
import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNextLine()) { String s = scanner.nextLine();
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看JavaScript
let strings = readLine().split(","); //let strings = "2,0".split(","); strings.sort();
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看Python解法一
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看Python解法二
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看