求最大连续bit数_参数解析
【摘要】 求最大连续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数
//按位与,右移!
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); */
}
}
参数解析
//方法一:
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)