第一题没思路,第二题差十分钟写出下面代码,后面的没看,我哭了

美团4.23第二题
import java.util.LinkedList; import java.util.Scanner; import java.util.Stack; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); LinkedList<StringBuilder> list = new LinkedList<>(); while (in.hasNextLine()) { StringBuilder sb = new StringBuilder(in.next()); //            list.add(sb);  f(sb);
        }

    } public static void f(StringBuilder sb){ StringBuilder res = new StringBuilder(); int len = sb.length(); //            System.out.println(sb.toString());  Stack<Character> stack = new Stack<>(); int j = 0; if (sb.charAt(0)=='-') { stack.push('('); stack.push('$');
            j=1;
        }else { stack.push('$');
        } for (int i = j; i < len; i++) { if (sb.charAt(i)=='.'){
                len =len>i+3? i+3:len;
            } stack.push(sb.charAt(i));
        } int count = 0; if (sb.charAt(0)=='-'){
            res.append(")");
        } while (!stack.empty()){
            res.append(stack.pop()); if (!stack.empty()&&stack.peek()=='.'){
                res.append(stack.pop()); while (stack.peek()!='$'){ if (stack.peek()!='$')res.append(stack.pop()); else break; if (stack.peek()!='$')res.append(stack.pop()); else break; if (stack.peek()!='$')res.append(stack.pop()); else break; if (stack.peek()!='$') res.append(","); else break;
                }
            }
        }
        res = res.reverse(); System.out.println(res);
    }

}

#美团笔试##笔试题目#
全部评论
这题坑太多了,我也在这浪费太多时间了
点赞 回复 分享
发布于 2020-04-23 21:55
哎  太难了
点赞 回复 分享
发布于 2020-04-23 22:17
这个题的测试数据真的太强悍了。。。哎,我好菜
点赞 回复 分享
发布于 2020-04-23 22:48
这题我开始就觉得花很多时间,最后几分钟写出来的  用的很蠢的string import java.util.Scanner; public class Main {     public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         while(sc.hasNext()){             String in = sc.nextLine();             int left = 0;             if(in.startsWith("-")){                 left = 1;             }             int start = in.indexOf('.');             int len = start == -1 ? in.length() - 1 : start - 1;             String res = ".";             int count = 1;             for(int i = len; i >= left; i--){                 if(count == 3 && i != left){                     res = "," +  in.charAt(i) + res;                     count = 1;                 }else{                     res = in.charAt(i) + res;                     count++;                 }             }
点赞 回复 分享
发布于 2020-04-23 23:31
请问有原题题目可以参考一下吗,谢谢
点赞 回复 分享
发布于 2020-04-24 09:19

相关推荐

10-24 11:10
山西大学 Java
若梦难了:哥们,面试挂是很正常的。我大中厂终面挂,加起来快10次了,继续努力吧。
点赞 评论 收藏
分享
2 收藏 评论
分享
牛客网
牛客企业服务