大家好,我是LvZi,今天带来
笔试狂刷--Day9
一.添加逗号
题目链接:添加逗号
分析:
模拟
代码:
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
char[] tmp = String.valueOf(n).toCharArray();
char[] s = new char[tmp.length];
for (int i = 0; i < tmp.length; i++) {
s[i] = tmp[tmp.length - 1 - i];
}
StringBuffer sb = new StringBuffer();
int j = 0;
while (j < s.length) {
if ((j != 0) && ((j % 3) == 0)) {
sb.append(",");
}
sb.append(s[j]);
j++;
}
System.out.println(sb.reverse().toString());
}
}
二.跳台阶
题目链接:跳台阶
分析:
基础的动态规划
代码:
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
if (n == 1) {
System.out.println(1);
return;
}
if (n == 2) {
System.out.println(2);
return;
}
int a = 1;
int b = 2;
int c = 0;
for (int i = 3; i <= n; i++) {
c = a + b;
a = b;
b = c;
}
System.out.println(c);
}
}
三.
题目链接:扑克牌顺子
分析:
找规律
如果能构成顺子,则所有非零元素一定满足
不存在重复元素
max - min <= 4
代码:
public boolean IsContinuous (int[] numbers) {
// write code here
boolean[] hash = new boolean[14];
int max = 0, min = 14;
for(int x : numbers) {
if(x != 0) {
if(hash[x]) return false;// 同一数字出现两次 一定不是顺子
hash[x] = true;
max = Math.max(max,x);
min = Math.min(min,x);
}
}
return max - min <= 4;
}