有一个二进制字符串,可以选择该串中的任意一段区间进行取反(可以进行一次或不进行),取反指将变为,将变为。那么取反之后的可能的最大的字典序是多少呢。如有,将区间取反变为是字典序最大的。
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; } }