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();
    	}
    }
    
  • 相关阅读:
    [TCP/IP]TCP的三次握手和四次挥手

    思考
    jQuery完整的事件委托(on())
    jQuery队列动画
    jQuery自定义动画
    jQuery淡入淡出
    jQuery滑动动画
    jQuery基本动画
    jQuery基础3
  • 原文地址:https://www.cnblogs.com/coding-gaga/p/10987337.html
Copyright © 2011-2022 走看看