猿问

给定一个字符串,找到所有数字排列(子字符串)

给定一个数字字符串,找到构成数字且遵循顺序和边界的所有子字符串。


顺序基于数字在字符串中的位置,数字的边界为 1 和 26(包含 1 和 26)。


Ex 1: String S="24"


Possible: [2,4], [24]


Ex 2: String S="246"


Possible: [2, 4, 6], [24, 6]


Note: the combo [2,46] is NOT considered because 46 is out of range



Ex 3: String S="146"


Possible: [1, 4, 6], [14, 6]


Note: the combo [1,46] is NOT considered because 46 is out of range



每个组合都是一个整数列表,结果是整数列表的列表。


最有效的方法是什么?


鸿蒙传说
浏览 101回答 2
2回答

繁花不似锦

如果字符串的长度足够大,则必须使用 dp 技术来解决它。您可以仅使用一个状态 dp(例如 dp[pos])来完成此操作。对于每个位置,您有 2 个选择,要么仅采用该数字,要么在符合范围的情况下采用下一个数字。

繁华开满天机

您好,请尝试以下代码,public static void main(String[] args) {&nbsp;&nbsp; &nbsp; String str = "246";&nbsp;&nbsp; &nbsp; &nbsp; System.out.println("All substring of abbc are:");&nbsp; &nbsp; &nbsp; &nbsp;for (int i = 0; i < str.length(); i++) {&nbsp; &nbsp; &nbsp; &nbsp;for (int j = i+1; j <= str.length(); j++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if((Integer.valueOf(str.substring(i,j)) <26))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println(str.substring(i,j));&nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; &nbsp; }}&nbsp;
随时随地看视频慕课网APP

相关分类

Java
我要回答