目录
一、添加逗号
二、爬楼梯
三、扑克牌顺子
添加逗号_牛客题霸_牛客网 (nowcoder.com)
一、添加逗号
没啥注意读题就是 注意逗号是从后往前加,第一位如果是3的倍数不需要加逗号,备注里面才是需要看的
count计数 是三的倍数就加逗号,StringBuilder 模拟,最后翻转一下就行
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.nextLine();
char[] ch = str.toCharArray();
int count = 0;
StringBuilder s = new StringBuilder();
for(int i = ch.length - 1;i >= 0;i--){
s.append(ch[i]);
count++;
if(count % 3 == 0 && count != ch.length){
s.append(",");
}
}
System.out.println(s.reverse());
}
跳台阶_牛客题霸_牛客网 (nowcoder.com)
二、爬楼梯
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] dp = new int[n+1];
dp[0] = 1;
dp[1] = 1;
for(int i = 2;i <= n;i++){
dp[i] = dp[i-1] +dp[i-2];
}
System.out.println(dp[n]);
}
入门级动态规划,这里选择以某点作为结尾来分析
扑克牌顺子_牛客题霸_牛客网 (nowcoder.com)
三、扑克牌顺子
仔细读题就会发现两个点 1、就是五个数中,除了0之外有重复数字,直接return false 2、只有5个数
public boolean IsContinuous (int[] numbers) {
// write code here
int max = -1;
int zeroCount = 0;
Set<Integer> set = new HashSet<>();
for(int i = 0;i < numbers.length;i++){
max = Math.max(max,numbers[i]);
if(numbers[i] == 0){
zeroCount++;
} else{
if(set.contains(numbers[i])){
return false;
}else{
set.add(numbers[i]);
}
}
}
int k = 5;
while(k > 1){
max--;
if(!set.contains(max)){
zeroCount--;
}
if(zeroCount < 0){
return false;
}
k--;
}
return true;
}