給定一個數字字符串,找到構成數字且遵循順序和邊界的所有子字符串。順序基于數字在字符串中的位置,數字的邊界為 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
提交
取消