题解 | #二进制取反#

二进制取反

http://www.nowcoder.com/practice/4ca47baf4d5f4417afc0f99d6efc7d42

使用两个变量,一个判断是否是第一次遇到连续的‘0’,是的话就加入1,不是就加入原数字,当遇到‘0’之后再遇到‘1’,就改变另一个变量使之后不会再处理‘0’。

import java.util.*;

public class Solution {
    
    public String maxLexicographical (String num) {
        StringBuilder res = new StringBuilder();
        int flag0 = 1, flag1 = 0;
        for(Character c:num.toCharArray()){
        	// 如果是第一次遇到0
            if(flag0 == 1 && c == '0'){
                res.append('1');
                flag1 = 1;
            }else{
            	res.append(c);
            	// 如果已经遇到过0了
                if(flag1 == 1)flag0 = 0;
            }
        }
        return res.toString();
    }
    
}
全部评论

相关推荐

点赞 评论 收藏
分享
勤奋努力的椰子这就开摆:这些经历跟硬件都没啥关系呀
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务