求最大连续bit数_参数解析

举报
bug郭 发表于 2022/08/26 23:55:15 2022/08/26
【摘要】 求最大连续bit数求最大连续bit数//按位与,右移!import java.util.*;public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); //将整数转换成...

求最大连续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()); //打印结果!

    }
}

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。