洛谷P1087 FBI树【二叉树遍历】

题目链接:P1087 FBI树

程序说明:

后序遍历+判断条件,注意indexOf()可以判断子串是否存在(一开始没想到用indexOf)

代码如下:

import java.util.*;
import java.io.*;
public class Main {
    public static void main(String[] args) {
        String s = new String();
        int n;
        Scanner in = new Scanner(new BufferedInputStream(System.in));
        n = in.nextInt();
        s = in.next();
        System.out.println(after(s));       
    }
    static public char after(String s) {
        if(s.length() > 1) {
            System.out.print(after(s.substring(0, s.length()/2)));
            System.out.print(after(s.substring(s.length()/2, s.length())));
        }
        if(s.indexOf("0") < 0)
            return 'I';
        else if(s.indexOf("1") < 0)
            return 'B';
        else 
            return 'F';
    }
}
import java.util.*;
import java.io.*;
public class Main {
    static int p, q, r;
    public static void main(String[] args) {
        String s = new String();
        int n;
        Scanner in = new Scanner(new BufferedInputStream(System.in));
        n = in.nextInt();
        s = in.next();
        System.out.println(after(s));       
    }
    static public char after(String s) {
        //不能在这里初始化p,q
        if(s.length() > 1) {
            System.out.print(after(s.substring(0, s.length()/2)));
            System.out.print(after(s.substring(s.length()/2, s.length())));
        }
        p = 0;
        q = 0;
        char a[] = s.toCharArray();
        for(int i = 0; i < a.length; i++) {
            if(a[i] == '0')
                p++;
            else if(a[i] == '1')    
                q++;
        }
        if(p == s.length())
            return 'B';
        else if(q == s.length())
            return 'I';
        else 
            return 'F';
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值