又是刚准备粘贴到在线编译器就考试结束的一天,气死我了!!!我就不信了,回回我这么倒霉
下面分享下便利蜂6.7日的笔试题1,代码应该是功能完整的,并且能通过:
package 春招笔试题.便利蜂笔试; import java.util.*; /** * @author deepinsea * @data 2021/6/11 19:06 * 题目描述: * 给定一组词组,每个词组包含id和字符串的映射,现输入另一组词组,要求找出新的词组与老的词组的diff关系,diff要求如下: * 1、id相同且字符串相同的两个词组视为相同 * 2、id相同,且字符串不同的输出modify+id * 3、新的词组id在老的词组id中不存在的,视为新增,输出add+id * 4、老的词组id在新的词组id中不存在的,视为删除,输出delete+id * <p> * 输入描述 * 第一行代表老的词组,第二行代表新的词组 * 每一行是id-字符串的组合,多个词组以逗号分隔 * 如:1-a,2-b,3-c * <p> * 输出描述 * 一个字符串,多个结果按字符串排序后(直接使用string的compareTo方法比较大小即可)以逗号分隔,如:add-2,delete-22 * <p> * 样例输入 * 1-a,2-b,3-c * 1-a,2-bb,3-c * 样例输出 * modify-2 * <p> * 提示 * 输入: * 1-a,2-b,3-c * 1-a,2-bb * 输出: * modify-2,delete-3 * <p> * 输入: * 1-a * 1-a,2-b * 输出: * add-2 */ public class Exam1EasyBee { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 输入两行字符串 // String str1 = sc.nextLine(); // String str2 = sc.nextLine(); String str1 = "1-a,2-b,3-c"; String str2 = "1-a,2-bb"; System.out.println(str1); System.out.println(str2); // 切割出id与value String[] s1 = str1.split(","); String[] s2 = str2.split(","); System.out.println(Arrays.toString(s1)); // 先将string数组转为list List list1 = new ArrayList(); List list2 = new ArrayList(); for (int i = 0; i < s1.length; i++) { list1.add(s1[i]); } for (int i = 0; i < s2.length; i++) { list2.add(s2[i]); } // 加空白 if (s1.length > s2.length) { for (int i = 0; i < s1.length - s2.length; i++) { list2.add(" "); } } if (s2.length > s1.length) { for (int i = 0; i < s2.length - s1.length; i++) { list1.add(" "); } } System.out.println(list2); // 条件判断 String result = ""; for (int i = 0; i < list1.size(); i++) { // 判断 // 不包含(list1为空白和id相同但value不同) if (!list2.contains(list1.get(i))) { // 新增 if (list1.get(i) == " ") { if (result.length()==0) { // System.out.print("add-" + (i + 1)); result += "add-" + (i + 1); }else { // System.out.print(",add-" + (i + 1)); result += ",add-" + (i + 1); } } } if (!list1.contains(list2.get(i))) { // 删除 if (list2.get(i) == " ") { if (result.length()==0) { // System.out.print("delete-" + (i + 1)); result += "delete-" + (i + 1); }else { // System.out.print(",delete-" + (i + 1)); result += ",delete-" + (i + 1); } } } if (!list1.contains(list2.get(i))&&list1.get(i) != " "&&list2.get(i) != " ") { // 修改 if (result.length()==0) { // System.out.print("modify-" + (i + 1)); result += "modify-" + (i + 1); }else { // System.out.print(",modify-" + (i + 1)); result += ",modify-" + (i + 1); } } } System.out.println(result); } }还是太菜了,不知道有谁和我一样,秋招因为消息闭塞没有参加,春招3,4月份才参加笔试面试。因为参加的较晚还没刷多少算法题,导致现在笔试通不过......
哎,太难了!
机会对二本的同学来说本来就少的可怜,还通不过笔试,哎~
全部评论
(2) 回帖