字节笔试第四题

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String num = in.nextLine();

        ArrayList<StringBuilder> list = new ArrayList<>();
        StringBuilder stringBuilder = new StringBuilder();
        decode(num, 0, stringBuilder, list);
        for (StringBuilder str : list) {
            System.out.println(str.toString());
        }
        System.out.println(list.size());
    }

    private static void decode(String num, int start, StringBuilder stringBuilder, ArrayList<StringBuilder> list) {
        int length = num.length();
        if (start >= length) {
            list.add(stringBuilder);
            return;
        }
        char c = num.charAt(start);
        if (c == '0') {
            return;
        }
        stringBuilder.append((char) ('A' + Integer.parseInt(num.substring(start, start + 1)) - 1));
        decode(num, start + 1, new StringBuilder(stringBuilder), list);
        stringBuilder.deleteCharAt(stringBuilder.length()-1);

        if (start + 1 < length && (c == '1' || (c == '2' && num.charAt(start + 1) < '7'))) {
            stringBuilder.append((char) ('A' + Integer.parseInt(num.substring(start, start + 2)) - 1));
            decode(num, start + 2, new StringBuilder(stringBuilder), list);
        }
    }
}

#笔试题目##字节跳动#
全部评论
ac了吗
点赞 回复 分享
发布于 2019-09-09 04:05

相关推荐

拒绝无效加班的小师弟很中意你:求职意向没有,年龄、课程冗余信息可以删掉,需要提升项目经历。排版需要修改。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
美团 后端开发 总包n(15%是股票)
点赞 评论 收藏
分享
3 7 评论
分享
牛客网
牛客企业服务