广联达 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); } }