最近公共祖先_求最大连续bit数_参数解析

最近公共祖先

最近公共祖先

image-20220501113207189

import java.util.*;
public class LCA {
    public int getLCA(int a, int b) {
        //每次都让较大的节点先找父节点,
        // 直到 a和b相遇!就是公共节点!
        while(a!=b){
            if(a>b){
                a/=2;
            }else{
                b/=2;
            }
        }
        return a;

    /*    int[] array1 = new int[a];
        int[] array2 = new int[b];
        int i = 0;
        while(a!=0){
            array1[i++] = a;
            a/=2;
        }
        int j = 0;
        while(b!=0){
            array2[j++] = b;
            b/=2;
        }
        for(int k = 0;k<i;k++){
            for(int z = 0;z<j;z++){
                if(array1[k]==array2[z]){
                    return array1[k];
                }
            }
        }
        return array1[i-1]; */
    }
}

求最大连续bit数

求最大连续bit数

image-20220501113357914

//按位与,右移!
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        //将整数转换成2进制字符串!
        String str = Integer.toBinaryString(n);
        //分割子串,以0分割!
        String[] strs = str.split("0");
        int max = 0;
        for(int i = 0;i<strs.length;i++){
            if(strs[i].length()>max){
                max = strs[i].length();
            }
        }
        System.out.println(max);
        /*int countMax = 0;//保存最大连续1的个数!
        int count = 0;//暂时保存连续1的个数
        while(n!=0){
            if((n&1)==1){
                //按位与& 结果为1 说明这里为1
                count++;
            }else{
                countMax = Math.max(count,countMax);  
                count = 0;
            }
            n = n>>1;
        }
        //可能连续最大的1次数在二进制首!
        countMax = Math.max(count,countMax);  
        System.out.println(countMax); */
    }
}

参数解析

参数解析

image-20220501122715736

//方法一:
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        //xcopy /s "C:\\program files" "d:\" 分割后,空格元素的后一个元素就是""分割的元素! 所以这个就不需要分割了!
        int flag = 1;//定义标志位,标志 "
        int count = 0;
        ArrayList<StringBuilder> result = new ArrayList<>();
        StringBuilder sb = new StringBuilder();
        //  l "b:\" /kzv /yar   // u "a e i o u" r
        for(int i = 0;i< str.length();i++){
            char ch = str.charAt(i);
            if(ch=='"'){
                flag^=1;
               continue;
            }
            if(ch!=' '){
               sb.append(ch); 
            }
            if(ch==' '&&flag==0){//空格 且标志位为 0 说明这是""里的空格!
                sb.append(ch); 
            }else if(ch==' '&&flag==1){
                //需要分割!
                result.add(sb);
                sb = new StringBuilder();
            }
        }
          result.add(sb);
        System.out.println(result.size());
        for(int i = 0;i<result.size();i++){
            System.out.println(result.get(i));
        }
    }
}
//方法二:
//通过 \n 字符实现打印换行!
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        StringBuffer sb = new StringBuffer();
        int len = 0;
        int quotaNum = 0;//这里作为"标志位!
        // xcopy /s "C:\\program files" "d:\"
        for (int i = 0; i < str.length(); i++){
            if (str.charAt(i) == '"'){ //标志位++!
                quotaNum++; continue;
            }
            if (str.charAt(i) != ' '){//不是空格就保存!
                sb.append(str.charAt(i));
            } else if (quotaNum % 2 == 0){//说明这里不是""里的空格!
                sb.append('\n'); //用 \n 换行符分割!
                len++; //长度++!
            }else { //""里的空格,保存!
                sb.append(' ');
            }
        }
        System.out.println(len+1); //最后一个字符子串没有计算!
        System.out.println(sb.toString()); //打印结果!

    }
}
#笔试题#
全部评论
你会求最大连续bit数吗?
点赞 回复 分享
发布于 2022-08-28 12:51 河南

相关推荐

拒绝996的悲伤蛙:此贴终结|给路过的牛友分享一下心得👇 实习的时候不要光埋头干活,身边的大佬同事才是真·宝藏人脉!大胆请教他们工作以及职场上的问题以我的经历,我的带教有十几年工作经验,做过运维、后端开发、web测试,现在是高级软测,是行走的避坑指南 我之前纠结要不要学Web测试简历,被他一句话点醒:Web发展成熟,岗位需求在缩,AI对互联网的冲击可能以后架构+开发+测试一人包揽。现在用户更多用的是移动端APP/小程序,相比之下天天守着电脑刷网页的人基数小。 这里我的纠结得到反馈,于是我又把简历发给带教,获得了一对一的简历指导。 感兴趣的可以看看: 1.教育背景:本科→本科(全日制) 2.实习经历:总体问题不大,但第2点要稍作修改,可以写但做功课,如风机、水箱……可能会问用哪个供应商的?使用寿命、型号、电压电流、多少秒会触发逻辑? 3.项目经历(坑太多,大型翻车现场): - 项目名越直白越好,让人一眼就知道你干了啥。 -用的什么语言设计核心接口,异步执行做功课,涉及线程问题,被问可回答n个功能是如何错开异步执行的 - “验证任务消费……阻塞丢包”“高负载稳定性”这种词,没三五年开发功底不要写,不然面试时被问线程、数量级、CPU占用,内存带宽等影响性能的直接原地社死。 -做功课 -做功课,测了哪些模块,如何设计,接口流量抓包,token,变量…… -做功课,要熟悉网络协议…… 带教之前做互联网开发的时候面试过很多人,总的来说不要为了显得项目高大上过渡包装,写了就要做好拷打的准备
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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