zoukankan      html  css  js  c++  java
  • [CF1009B]Minimum Ternary String(思维)

    题目链接

    http://codeforces.com/problemset/problem/1009/B

    题意

    给一个只含0、1、2串,只能做相邻的01交换或者相邻的12交换操作,问经过数次操作(可以是0次)能得到的最小字典序的串是什么。

    题解

    思维题
    关键是把题意理解为:固定0、2的相对位置,往里随意放1,能得到的最小字典序。
    显然,目标是把所有1放到0后1前好,故放到第一个2222前,若没有2则放到字符串最前。
    关于存储串的形式,存到数组记1的数目即可,然后打印做处理即可。

    代码

    import java.util.Scanner;
    
    public class Main {
    	public static void main(String args[]) {
    		Scanner in=new Scanner(System.in);
    		String str=in.next();
    		int cnt=0;
    		for(int i=0;i<str.length();++i) {
    			if(str.charAt(i)=='1') {
    				++cnt;
    			}
    		}
    		int i=0;
    		for(;i<str.length();++i) {
    			if(str.charAt(i)=='0') {
    				System.out.print("0");
    			}
    			else if(str.charAt(i)=='2') {
    				while(cnt-->0) {//
    					System.out.print("1");
    				}
    				System.out.print("2");
    			}
    		}
    		while(cnt-->0) {
    			System.out.print("1");
    		}
    		in.close();
    	}
    }
    
  • 相关阅读:
    记忆的永恒
    放弃我是你的错
    献给我逝去的长辈们清明
    思维的局限,穷人为什么会穷?
    借我一生
    陪你到老
    风雨路途
    人生的十二大财富
    怀才不遇
    javascript变量
  • 原文地址:https://www.cnblogs.com/coding-gaga/p/10987337.html
Copyright © 2011-2022 走看看