有一个二进制字符串,可以选择该串中的任意一段区间进行取反(可以进行一次或不进行),取反指将
变为
,将
变为
。那么取反之后的
可能的最大的字典序是多少呢。如有
,将区间
取反变为
是字典序最大的。
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param num string字符串
* @return string字符串
*/
public String maxLexicographical (String num) {
// write code here
if(num.length()<2)return "1";
char[] max = num.toCharArray();
int low=0,high=0;
while(low < max.length){
if(max[low]=='0'){
while(max[low]=='0'&&low<max.length){
max[low]='1';
low++;
if(low>max.length-1)
break;
}
break;
}
low++;
}
String s =String.valueOf(max);
return s;
}
}