• 545B. Equidistant String


    题目链接

    输入两个只含有01的字符串,s,t

    求一个字符串p使到s,t的距离一样

    这里的距离是指对应位置:0-0的距离是0 ,o-1的距离是1 ,1-1的距离是0,1-0的距离是1

    这里只要求找出满足条件的一个p既可以

    对s,t相同位置一样的可以不考虑,因为这个是同时增加了p到两者的距离

    下面就是只对相同位置不相同的情况考虑

    交替的选取si,ti的位置的元素组成新的p

    如果不相同的元素个数是偶数则这里的p满足条件,否则,不对头。

    下面的java代码,p我定义成String类型,每次把要链接的si或ti链接起来,提交后 第三次测试数据运行时间超时,,,,,,,改成StringBuilder,就可以了。。。。。

    Java代码:

    import java.util.Scanner;
    
    
    public class B545 {
        static void run(){
            Scanner sc = new Scanner(System.in);
            char[] s= sc.next().toCharArray();
            char[] t = sc.next().toCharArray();
            StringBuilder p = new StringBuilder();
            int count = 0;
            boolean flag = false;
            for(int i=0;i<s.length;i++){
                char si=s[i];
                char ti=t[i];
                if(si == ti)
                    p.append(si);
                else if(flag==false)
                    {
                    p.append(si);
                    count++;
                    flag = true;
                    }
                else if(flag = true){
                    p.append(ti);
                    count++;
                    flag = false;
                    }
            }
            if (count%2==0)
                System.out.println(p.toString());
            else System.out.println("impossible");
        }
        public static void main(String[] args){
            run();
        }
    }

    Python程序

    def B545():
        s,t = raw_input().strip(),raw_input().strip()
        count = 0
        p=''
        flag = False
        for i in range(len(s)):
            if s[i]==t[i]:
                p+=s[i]
            elif flag==False:
                p+=s[i]
                count+=1
                flag =True
            elif flag == True:
                p+=t[i]
                count+=1
                flag =False
            #print p 
        if count%2==0:
            print p 
        else:
            print 'impossible'
    
    if __name__=='__main__':
        B545()
  • 相关阅读:
    从零搭建springboot+mybatis逆向工程
    基础SQL总结
    Map集合浅谈
    ArrayList、LinkedList与Vector的区别
    java多线程总结
    P4108 [HEOI2015]公约数数列
    P2168 [NOI2015] 荷马史诗
    正睿 2021 Noip 十连测 Day2
    CF772E Verifying Kingdom
    BZOJ1767 [CEOI2009] Harbingers
  • 原文地址:https://www.cnblogs.com/bbbblog/p/4714103.html
Copyright © 2020-2023  润新知