给定一个数字字符串,找到构成数字且遵循顺序和边界的所有子字符串。顺序基于数字在字符串中的位置,数字的边界为 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 rangeEx 3: String S="146"Possible: [1, 4, 6], [14, 6]Note: the combo [1,46] is NOT considered because 46 is out of range每个组合都是一个整数列表,结果是整数列表的列表。最有效的方法是什么?
2 回答
繁花不似锦
TA贡献1851条经验 获得超4个赞
如果字符串的长度足够大,则必须使用 dp 技术来解决它。您可以仅使用一个状态 dp(例如 dp[pos])来完成此操作。对于每个位置,您有 2 个选择,要么仅采用该数字,要么在符合范围的情况下采用下一个数字。
繁华开满天机
TA贡献1816条经验 获得超4个赞
您好,请尝试以下代码,
public static void main(String[] args) {
String str = "246";
System.out.println("All substring of abbc are:");
for (int i = 0; i < str.length(); i++) {
for (int j = i+1; j <= str.length(); j++) {
if((Integer.valueOf(str.substring(i,j)) <26))
System.out.println(str.substring(i,j));
}
}
}
添加回答
举报
0/150
提交
取消