-
Java 生成随机密码
2018-12-13 19:40:33利用Random方法生产随机密码。 将字母,数字,符号拆开... 然后循环取值,每一次从数组中随机拿取字符,并把这个字符随机放入生产的密码字符串中的某个位置。 public final static String[] LOWER_CASES = { "a", ...利用Random方法生产随机密码。 将字母,数字,符号拆开成可取用的数组,按照密码长度做生成策略, 分别为小写字母占密码长度的1/2,大写字母和数字各占1/4,符号占剩余无法除尽的(最多两个符号)。 然后循环取值,每一次从数组中随机拿取字符,并把这个字符随机放入生产的密码字符串中的某个位置。 public final static String[] LOWER_CASES = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}; public final static String[] UPPER_CASES = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}; public final static String[] NUMS_LIST = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}; public final static String[] SYMBOLS_ARRAY = {"!","~","^","_","*"}; /** * 生成随机密码 * @param pwd_len 密码长度 * @return 密码的字符串 */ public static String genRandomPwd(int pwd_len) { if ( pwd_len < 6 || pwd_len >20 ) { return ""; } int lower = pwd_len / 2 ; int upper = (pwd_len - lower) /2; int num = (pwd_len - lower) / 2; int symbol = pwd_len - lower - upper - num ; StringBuffer pwd = new StringBuffer(); Random random = new Random(); int position = 0; while((lower + upper + num + symbol) > 0 ){ if(lower > 0){ position = random.nextInt(pwd.length() + 1); pwd.insert(position,LOWER_CASES[random.nextInt(LOWER_CASES.length)]); lower--; } if(upper > 0){ position = random.nextInt(pwd.length() + 1); pwd.insert(position,UPPER_CASES[random.nextInt(UPPER_CASES.length)]); upper--; } if(num > 0){ position = random.nextInt(pwd.length() + 1); pwd.insert(position,NUMS_LIST[random.nextInt(NUMS_LIST.length)]); num--; } if(symbol > 0){ position = random.nextInt(pwd.length() + 1); pwd.insert(position,SYMBOLS_ARRAY[random.nextInt(SYMBOLS_ARRAY.length)]); symbol--; } System.out.println(pwd.toString()); } return pwd.toString(); }
-
【Java】扑克牌中的顺子
2020-04-05 14:28:45从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。 示例1: 输入: [1,2,3,4,5] 输出: True ...题目描述
从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。
示例 1:
输入: [1,2,3,4,5] 输出: True
示例 2:
输入: [0,0,1,2,5] 输出: True
限制:
数组长度为 5
数组的数取值为 [0, 13] .
解题思路
1、这道题考虑最大最小值其实不太方便,因为有了大小王的存在,最大最小的差不一定就小于5
2、可以考虑排序后两两比较,如果是大小王,就记录大小王的个数,如果后面一个比前面一个大于1,那么说明需要大小王去填
3、最后判断大小王的个数够不够填
class Solution { public boolean isStraight(int[] nums) { Arrays.sort(nums); int joker = 0; int needJoker = 0; for(int i = 0;i < nums.length-1;i++){ if(nums[i] == 0){ joker++; continue; }else if(nums[i] == nums[i+1]){ return false; }else { needJoker += nums[i+1] - nums[i] - 1; } } return joker >= needJoker; } }
-
【蓝桥杯】扑克牌中的顺子(Java实现)
2020-03-12 23:29:08从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11, Q为12,K为13,而大、小王为0。可以看成任张数字。A不能视为14。 示例1: 输入: 1 2 3 4 5 输出: True 示例2: ...
从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11, Q为12,K为13,而大、小王为0,可以看成任张数字。A不能视为14。
示例1:
输入: 1 2 3 4 5
输出: True示例2:
输入: 0 0 1 2 5
输出: Ture限制:
数组长度为5
数组的数取值为[0, 13]import java.util.*; public class Main { public static void main(String[] args) { // TODO 自动生成的方法存根 Scanner sc= new Scanner(System.in); int[] array=new int[5]; boolean bool=true; int zeroCount=0; //用户输入 for(int i=0;i<5;i++) { array[i]=sc.nextInt(); if(array[i]==0) { //判断0的个数 zeroCount++; } } //数组降序排列 for(int i=0;i<5;i++) { for(int j=i+1;j<5;j++) if(array[i]<array[j]) { //数据交换 array[i]=array[i]+array[j]; array[j]=array[i]-array[j]; array[i]=array[i]-array[j]; } } //查找数组中是否存在重复 for(int i=1;i<5;i++) { if(array[i]==array[i-1]&&array[i]!=0) { zeroCount=-1; bool=false; } } //有0的情况 if(zeroCount>0) { int count=0; //查询数组非0值得间隔距离 for(int i=1;i < 5-zeroCount;i++) { count+=array[i-1]-array[i]-1; } //间隔值与0的个数进行比较 if(zeroCount<count) { bool=false; } } //非0数的顺子 if(zeroCount==0) { for(int i = 1;i < 5;i++) { if(array[i-1]+1!=array[i]) { bool=false; break; } } } //输出 System.out.println(bool); } }
-
面试题61 扑克牌中的顺子(java)
2020-02-29 22:43:36从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。 示例 1: 输入: [1,2,3,4,5] 输出: ...从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。 示例 1: 输入: [1,2,3,4,5] 输出: True 示例 2: 输入: [0,0,1,2,5] 输出: True 限制: 数组长度为 5 数组的数取值为 [0, 13] . 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/bu-ke-pai-zhong-de-shun-zi-lcof 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution { public boolean isStraight(int[] nums) { Arrays.sort(nums); int zero = 0; int i = 0; while(i < 5 && nums[i] == 0){ zero++; i++; } if(i == 5) return true; int min = nums[i]; int n = i; for(; i < 4; i++){ if(nums[i]==nums[i+1]) return false; } int max = nums[4]; if(max-min <= 4 - n + zero) return true; return false; } }
-
面试题61. 扑克牌中的顺子(Java)
2020-03-17 15:07:12从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。 示例 1: 输入: [1,2,3,4,5] 输出: True ... -
【剑指offer】面试题61:扑克牌中的顺子(java)
2020-02-28 11:07:01从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。 示例1: 输入: [1,2,3,4,5] 输出: True... -
【Java语言】力扣系列----剑指 Offer 61. 扑克牌中的顺子
2020-07-29 20:10:14从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。 示例 1: 输入: [1,2,3,4,5] 输出: True ... -
java Math.random()的使用
2020-05-09 13:18:01Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值,是Java语言常用代码。 Math.random()*b 左边闭区间取值0,右边开区间取值b ...现从colors数组中随机取出一个颜色,可以这 -
java 算法
2012-03-29 09:01:35用半角的特殊符号代替全角的特殊符号,数组和数组之间的转换代码,从资源文件里读取值的类,一个随机类,计算传入值是否星期六,为RootPaneContainer组件添加键盘事件,将数组转成字符串 在调试或记录日志时用到,... -
java实现100个不重复随机数
2018-05-02 16:26:01是建立两个数组,一个是1-100,另一个从其中随机取值。这里可以设置一个end变量记录取值长度。 3.利用List中提供的Colections.shuffle(),但是要先转成List,这里需要注意asList只能取值,但是不能增加或删除.具体... -
java之学习记录 11 - 1 - 计数排序
2021-04-15 13:00:55假设数组中有10个整数,取值范围为0~10,要求用最快的速度把这10个整数从小到大进行排序。 可以根据这有限的范围,建立一个长度为11的数组。数组下标从0到10,元素初始值全为0 假设数组数据为:9,1,2,7... -
61. 扑克牌中的顺子
2021-03-13 16:07:43从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为0,可以看成任意数字。A 不能视为 14。 示例 1: 输入: [1,2,3,4,5] 输出: True ... -
Java-双色球
2017-12-16 16:12:191.随机生成7位数的数组为大奖号码(前6位红球每个数值取值范围为1~33,而且6个数值不能相同,第七位篮球取值范围为1~16) 2.判断购买号码为手动输入还是机选(如为手动输入,将用for循环一次从控制台输入一个依次数... -
扑克牌中的顺子(Set)+2
2020-11-28 21:08:25从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。 示例 1: 输入: [1,2,3,4,5] 输出: True ... -
扑克牌顺子(剑指offer java版)
2020-05-15 17:19:01浓缩题目:从扑克牌中随机抽取5张牌,判断是不是一个顺子,即这5张牌是不是连续的。其中令大小王用0表示,大\小王可以看成任何数字。 思路 用数组记录五张扑克牌,将数组调整为有序的,若0出现的次数>=顺子的差值... -
Java经典编程300例(code)
2013-01-09 10:26:53实例032 将二维数组中的行列互换 45 实例033 利用数组随机抽取幸运观众 47 实例034 用数组设置JTable表格的 列名与列宽 49 实例035 使用按钮控件数组实现 计算器界面 51 实例036 通过复选框控件数组实现 添加多个复... -
Java测试题4答案
2008-06-18 17:04:35roll()方法使faceValue为1~6中的一个随机值。getFaceValue()是取出faceValue值。 2)然后定义DiceGame类。 提示:DiceGame类有die1、die2两个静态属性,有一个play()方法。play()方法返回一个布尔类型,... -
Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3
2016-06-12 11:39:31实例043 将二维数组中的行列互换 53 实例044 利用数组随机抽取幸运观众 54 实例045 用数组设置JTable表格的列名与列宽 55 3.2 数组操作 57 实例046 数组的下标界限 57 实例047 按钮控件数组实现计数器界面 58 实例... -
Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part1
2016-06-12 11:34:39实例043 将二维数组中的行列互换 53 实例044 利用数组随机抽取幸运观众 54 实例045 用数组设置JTable表格的列名与列宽 55 3.2 数组操作 57 实例046 数组的下标界限 57 实例047 按钮控件数组实现计数器界面 58 实例... -
Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part2
2016-06-12 11:37:04实例043 将二维数组中的行列互换 53 实例044 利用数组随机抽取幸运观众 54 实例045 用数组设置JTable表格的列名与列宽 55 3.2 数组操作 57 实例046 数组的下标界限 57 实例047 按钮控件数组实现计数器界面 58 实例... -
Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part4
2016-06-12 11:41:40实例043 将二维数组中的行列互换 53 实例044 利用数组随机抽取幸运观众 54 实例045 用数组设置JTable表格的列名与列宽 55 3.2 数组操作 57 实例046 数组的下标界限 57 实例047 按钮控件数组实现计数器界面 58 实例... -
《Java开发实战1200例(第I卷)》(李钟尉.陈丹丹).part1 高清完整PDF版
2016-06-13 15:46:48实例043 将二维数组中的行列互换 实例044 利用数组随机抽取幸运观众 实例045 用数组设置JTable表格的列名与列宽 3.2 数组操作 实例046 数组的下标界限 实例047 按钮控件数组实现计数器界面 实例048 复选框... -
《Java开发实战1200例(第I卷)》(李钟尉.陈丹丹).part4 高清完整PDF版
2016-06-13 16:13:13实例043 将二维数组中的行列互换 实例044 利用数组随机抽取幸运观众 实例045 用数组设置JTable表格的列名与列宽 3.2 数组操作 实例046 数组的下标界限 实例047 按钮控件数组实现计数器界面 实例048 复选框... -
《Java开发实战1200例(第I卷)》(李钟尉.陈丹丹).part2 高清完整PDF版
2016-06-13 15:53:27实例043 将二维数组中的行列互换 实例044 利用数组随机抽取幸运观众 实例045 用数组设置JTable表格的列名与列宽 3.2 数组操作 实例046 数组的下标界限 实例047 按钮控件数组实现计数器界面 实例048 复选框... -
《Java开发实战1200例(第I卷)》(李钟尉.陈丹丹).part3 高清完整PDF版
2016-06-13 16:11:24实例043 将二维数组中的行列互换 实例044 利用数组随机抽取幸运观众 实例045 用数组设置JTable表格的列名与列宽 3.2 数组操作 实例046 数组的下标界限 实例047 按钮控件数组实现计数器界面 实例048 复选框... -
《Java开发实战1200例(第I卷)》(李钟尉.陈丹丹).part5 高清完整PDF版
2016-06-13 16:17:38实例043 将二维数组中的行列互换 实例044 利用数组随机抽取幸运观众 实例045 用数组设置JTable表格的列名与列宽 3.2 数组操作 实例046 数组的下标界限 实例047 按钮控件数组实现计数器界面 实例048 复选框... -
Java开发实战1200例.第2卷.part3
2013-05-08 22:46:34实例105 从表中随机返回记录 183 实例106 使用GROUP BY子句实现数据的 分组统计 184 实例107 利用GROUP BY函数实现多表分组 统计 185 4.3 比较大小与逻辑应用 187 实例108 在查询结果中不显示重复记录 187 实例109 ... -
Java开发实战1200例.第2卷.part2
2013-05-08 22:45:35实例105 从表中随机返回记录 183 实例106 使用GROUP BY子句实现数据的 分组统计 184 实例107 利用GROUP BY函数实现多表分组 统计 185 4.3 比较大小与逻辑应用 187 实例108 在查询结果中不显示重复记录 187 实例109 ... -
Java开发实战1200例.第2卷.part1
2013-05-08 22:44:13实例105 从表中随机返回记录 183 实例106 使用GROUP BY子句实现数据的 分组统计 184 实例107 利用GROUP BY函数实现多表分组 统计 185 4.3 比较大小与逻辑应用 187 实例108 在查询结果中不显示重复记录 187 实例109 ... -
Java Web开发实战1200例(第2卷)(完整版).(清华出版.卢瀚.王春斌).part1
2016-06-13 20:03:04实例105 从表中随机返回记录 实例106 使用GROUP BY子句实现数据的分组统计 实例107 利用GROUP BY函数实现多表分组统计 4.3 比较大小与逻辑应用 实例108 在查询结果中不显示重复记录 实例109 使用NOT查询不满足条件的...
收藏数
41
精华内容
16