为了账号安全,请及时绑定邮箱和手机立即绑定

将数字字符串分成1位和2位数字的组

将数字字符串分成1位和2位数字的组

炎炎设计 2021-05-11 16:26:58
我正在尝试将给定的数字字符串分成较小的1位数字和2位数字。像这样的东西:Input : 1234 Output : (1,2,34) (1,23,4) (1,2,3,4) (12,34) (12,3,4)我一直在尝试使用回溯来解决问题,但未能获得理想的结果。我的尝试如下:import java.util.Arrays;import java.util.ArrayList;public class MyClass {    private static void func(ArrayList<String> res, String digits, String s){        if(digits.length() <= 0){            res.add(s.substring(0, s.length()-1));            return;        }        String temp = digits;        String prev_s = s;        s = s  + digits.charAt(0) + ","; // chosen one character        func(res, digits.substring(1), s);        prev_s = s;        if(digits.length() >= 2){            s = s +  digits.substring(0,2) + ","; // chosen two characters            func(res, digits.substring(2), s);        }        s = prev_s;        digits = temp; // unchoosing    }    public static void main(String args[]) {        String digits = "1234";        ArrayList<String> res = new ArrayList<>();        String s = "";        func(res, digits, s);        for(int i =0; i < res.size(); i++){            System.out.println(res.get(i));        }    }       }我得到的答案如下:1,2,3,41,2,3,341,2,23,41,12,3,41,12,3,34我在做什么错?我想我在创建子字符串时搞砸了。另外,不使用回溯功能就可以解决此问题吗?谢谢!
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 116 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信