京东笔试9.9
100 80 20
小记一下
1.只有r、e、d的字符串相邻相同字符如dd变成一个字符,最终相邻都不相等的最小变化次数(A)
import java.util.Scanner;
public class _jd1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
int ans=0;
int count=0;
for (int i=0; i<str.length()-1; i++){
if (str.charAt(i)==str.charAt(i+1)&& i<str.length()-2 && str.charAt(i+1)==str.charAt(i+2) ) {
i+=2;
ans++;
}
else if (str.charAt(i)==str.charAt(i+1)){
i++;
ans++;
}
}
System.out.println(ans);
}
} 2.n个数取子集,子集任意2数和为偶数(80%)
计算奇数和偶数个数,快速幂算子集个数,还有20在哪?
import java.util.Scanner;
public class _jd2 {
static final int MOD = 1000000007;
public static long fastpow(long x, int n){
long ans = 1 % MOD;
while ( n!=0 ){
if ((n&1)!=0)
ans = (ans*x) % MOD;
x = (x*x) % MOD;
n >>= 1;
}
return ans;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int ji=0,ou=0;
for(int i=0; i<n; i++){
if ((sc.nextInt()&1)==1) ji++;
else ou++;
}
System.out.println(fastpow(2,ji)-ji-1 + fastpow(2,ou)-ou-1 );
}
} 3.k位的数字转字符,方案数等于k?只过了20求思路
查看7道真题和解析