Java算法-微软真题

第一道题

给定一个正数num,要返回一个大于num的数,

并且每一位和相邻位的数字不能相等

返回达标的数字中,最小的那个

99不能返回100,要返回101

110不能返回111,要返回121

public static int min(int num) {

        char[] array = (0 + String.valueOf(num + 1)).toCharArray();
        process(array);
        return Integer.valueOf(String.valueOf(array));
    }

    public static void process(char[] array) {
        for(int i = 1; i < array.length; i ++) {
            while(array[i] == array[i - 1]) {
                addOne(array, i);
                for(int j = i + 1; j < array.length; j ++) {
                    array[j] = '0';
                }
                process(array);
                return;
            }
        }
    }

    private static void addOne(char[] array, int i) {
        while(array[i] == '9') {
            array[i --] = '0';
        }
        array[i] ++;
    }

第二道题

来自微软

比如,str = "ayxbx"

有以下4种切法:alyxbx、ay|xbx、 ayxlbx、 ayxb |x

其中第1、3、4种切法符合: x和y的个数,至少在左右两

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

八股文+场景题+算法真题 文章被收录于专栏

Java全新整理八股文 + 场景题 + 算法 精心设计,面试命中率超过80% 专栏优势: 1、问题和答案已经整理到位,答案更专业,可以直接回答,不需要额外总结! 2、场景题讲解清晰,适用于大部分场景的项目,并且持续更新中 3、分享学习心得【知识点的广度和深度,算法有哪些坑,如何准备面试等等】

全部评论

相关推荐

沟头学院:无关比赛不要写,这样会显着你主次不分,比赛不要撒谎,有哪些就写那些,创新创业建议删除。技能特长可以适当夸大。
点赞 评论 收藏
分享
01-15 13:52
已编辑
河南大学 Java
六年要多久:标准头像,不吃香菜😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务