360笔试0827AK
第一题,纸上一串大写字符,判断反过来是否和正过来是一样的
- 思路很简单,判断字符串是否是回文的以及是否有非左右对称的字符
import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Set<Character> set = new HashSet<>(); set.add('A'); set.add('H'); set.add('I'); set.add('M'); set.add('O'); set.add('T'); set.add('U'); set.add('V'); set.add('W'); set.add('X'); set.add('Y'); String line = scanner.nextLine(); while(!line.isEmpty()) { boolean isValid = true; int n = line.length(); char[] rev = new char[n]; for(int i=0; i<n;i++){ rev[i] = line.charAt(n - 1 - i); } for(int i=0; i<n; i++) { if(rev[i] != line.charAt(i)){ isValid = false; break; } if(!set.contains(rev[i])){ isValid = false; break; } } if(isValid){ System.out.println("YES"); } else{ System.out.println("NO"); } line = scanner.nextLine(); } } }
第二题,四个数abcd分别代表1个人的队的数量,2个人的队的数量,3个人的队的数量和4个人的队的数量,问你最后能凑到几个四个人的队
- 思路是,3和1先配,然后2和2配,然后2和1配,具体思路见代码啦~并不复杂
import java.util.*; public class Main2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int T = scanner.nextInt(); while (T-->0) { int a = scanner.nextInt(); int b = scanner.nextInt(); int c = scanner.nextInt(); int d = scanner.nextInt(); int res = 0; res += d; res += Math.min(a, c); a -= Math.min(a, c); res += b/2; b = b%2; res += Math.min(b, a/2); a -= 2*Math.min(b, a/2); res += a/4; System.out.println(res); } } }
今天三场笔试真的累趴了,本来是四场,把晚上客户端的网易给鸽了做了好未来,希望早日能有offer,加油!