import java.util.*;
class Ideone {
public static void main
(String[] args
) { String s
= "abcfghij"; // Example string int k = 2;
int n = s.length();
int[] dp = new int[n];
dp[0] = 1;
int maxLen = 1, endIndex = 0;
for (int i = 1; i < n; i++) {
if (Math.
abs(s.
charAt(i
) - s.
charAt(i
- 1)) <= k
) { dp[i] = dp[i - 1] + 1;
} else {
dp[i] = 1;
}
if (dp[i] > maxLen) {
maxLen = dp[i];
endIndex = i;
}
}
int startIndex = endIndex - maxLen + 1;
System.
out.
println("Max length: " + maxLen
); System.
out.
println("Substring: " + s.
substring(startIndex, endIndex
+ 1)); }
}
aW1wb3J0IGphdmEudXRpbC4qOwoKY2xhc3MgSWRlb25lIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBTdHJpbmcgcyA9ICJhYmNmZ2hpaiI7IC8vIEV4YW1wbGUgc3RyaW5nCiAgICAgICAgaW50IGsgPSAyOwoKICAgICAgICBpbnQgbiA9IHMubGVuZ3RoKCk7CiAgICAgICAgaW50W10gZHAgPSBuZXcgaW50W25dOwogICAgICAgIGRwWzBdID0gMTsKCiAgICAgICAgaW50IG1heExlbiA9IDEsIGVuZEluZGV4ID0gMDsKCiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgaWYgKE1hdGguYWJzKHMuY2hhckF0KGkpIC0gcy5jaGFyQXQoaSAtIDEpKSA8PSBrKSB7CiAgICAgICAgICAgICAgICBkcFtpXSA9IGRwW2kgLSAxXSArIDE7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBkcFtpXSA9IDE7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChkcFtpXSA+IG1heExlbikgewogICAgICAgICAgICAgICAgbWF4TGVuID0gZHBbaV07CiAgICAgICAgICAgICAgICBlbmRJbmRleCA9IGk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGludCBzdGFydEluZGV4ID0gZW5kSW5kZXggLSBtYXhMZW4gKyAxOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTWF4IGxlbmd0aDogIiArIG1heExlbik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTdWJzdHJpbmc6ICIgKyBzLnN1YnN0cmluZyhzdGFydEluZGV4LCBlbmRJbmRleCArIDEpKTsKICAgIH0KfQo=