华为OD机试真题-字符串变换最小字符

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int maxCount = Integer.parseInt(in.nextLine());
        String word = in.nextLine();
        System.out.println(getResult(word, maxCount));
    }

    public static String getResult(String word, int maxCount) {
        StringBuilder wordBuilder = new StringBuilder(word);

        int i = 0;
        int index = 0;
        int left = 0, right = 0;
        StringBuilder ans = new StringBuilder();
        while (i < wordBuilder.length()) {
            if (wordBuilder.charAt(i) == '-') {
                index++;
                wordBuilder.delete(i, i + 1);

            }
            if (index == 1) {
                ans.append(wordBuilder.substring(0, i) + &quot;-&quot;);
                left = i;
                right++;
                i++;
                index++;
                continue;
            } else if (index > 0 &amp;&amp; right - left == maxCount){
                String temp = wordBuilder.substring(left, right);
                change(temp);
                ans.append(temp + &quot;-&quot;);
                left = i;
            }
            if (i == wordBuilder.length() - 1) {
                String temp = wordBuilder.substring(left, wordBuilder.length());
                change(temp);
                ans.append(temp + &quot;-&quot;);
            }
            right++;
            i++;
        }
        return ans.delete(ans.length()-1, ans.length()).toString();
    }

    public static void change(String word) {
        int low = 0;
        int uppper = 0;
        for (int i = 0; i < word.length(); i++) {
            if (word.charAt(i) >= 'a' &amp;&amp; word.charAt(i) <= 'z')
                low++;
            else if (word.charAt(i) >= 'A' &amp;&amp; word.charAt(i) <= 'Z')
                uppper++;
        }
        if (low > uppper)
            word.toLowerCase();
        if (uppper > low)
            word.toUpperCase();
    }
全部评论

相关推荐

可爱的牛油果在求佛:再给你说一点,之前我的简历像流水账,当时我在面试的时候,面试官说:“你简历上的都是在调包吗?有自己的改进吗?如果没有改进直接调包的话,我觉得没什么可深挖的”。当时给我整懵了。其实大部分确实是在调包,因为我确实就用到这些简单的技术,如果只是把技术要点写在简历上,那没什么好说的,没意思,没什么深挖的。但是调包与调包之间仍存在区别,那就是自己的思考,如果你不把自己的困难摆出来,人家觉得就是简单的调包,有啥难的。其实只有你自己知道这个项目的难点在哪,只有你自己知道为什么要用这个技术,为什么要调这个包,而你需要展示的,不是技术,而是这个“为什么”,这是关键。所以,当你的技术不是很硬核的时候,就要突出自己的思考,这时候“思考”是难点,而当你的简历很硬核,技术很复杂时,技术本身就是难点。
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
shanhai1:第一份实习挺看运气的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务