广联达 9.14 笔试
第一题:消消乐 栈消除 奇数赢
import java.util.Scanner;
import java.util.Stack;
/**
* @program: LeetCode2
* @description:
* @author: cmx
* @create: 2022-09-14 20:54
**/
public class Test68 {
public static String canWin(String s){
int count = 0;
Stack<Character> stack = new Stack<>();
for(int i=0;i<s.length();i++){
boolean flag = false;
if(!stack.isEmpty()&&stack.peek()==s.charAt(i)){
flag = true;
stack.pop();
count++;
}
if(!flag) stack.push(s.charAt(i));
}
System.out.println(count);
return count % 2 !=0 ? "Yes":"No" ;
}
public static void main2(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i=0;i<n;i++){
String s = sc.nextLine();
System.out.println(canWin(s));
}
}
public static void main(String[] args) {
String aab = canWin("baab");
System.out.println(aab);
}
}
第二题: 剪邮票
贪心的感觉,模拟了一下过了73
import java.util.Scanner;
/**
* @program: LeetCode2
* @description:
* @author: cmx
* @create: 2022-09-14 21:09
**/
public class Test69 {
private static int min = Integer.MAX_VALUE;
public static void backtrace(int n, int m, int k, int cur){
if(k==1){
min = Math.min(min, cur);
return;
}
if(n<m){
cur += n*n;
k--;
if(n<k){
cur += (n - 1);
backtrace(n, m-1, k-n+1, cur);
}else {
backtrace(n, 1, k, cur);
}
}else {
cur += m*m;
k--;
if(m<k){
cur += (m - 1);
backtrace(n-1, m, k-m+1, cur);
}else {
backtrace(1, m, k, cur);
}
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int k = sc.nextInt();
backtrace(n, m, k, 0);
System.out.println(min);
}
}
