zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    Java的特性和优势
    MyBatis
    SpringBoot简介
    Liunx
    MySql简介与入门
    Volatile
    MySQL简介
    Redis
    Spring IoC
    什么是springboot
  • 原文地址:https://www.cnblogs.com/theskulls/p/4714103.html
Copyright © 2011-2022 走看看