public class MaxAsciiDiff {
// Helper class to hold the result
static class Result {
int diff;
char c1;
char c2;
Result(int diff, char c1, char c2) {
this.diff = diff;
this.c1 = c1;
this.c2 = c2;
}
}
public static Result maxAsciiDiff(String s) {
if (s.length() < 2) {
return new Result(0, '\0', '\0');
}
int maxDiff = 0;
char best1 = '\0';
char best2 = '\0';
for (int i = 0; i < s.length() - 1; i++) {
int diff = Math.abs(s.charAt(i) - s.charAt(i + 1));
if (diff > maxDiff) {
maxDiff = diff;
best1 = s.charAt(i);
best2 = s.charAt(i + 1);
}
}
return new Result(maxDiff, best1, best2);
}
public static void main(String[] args) {
String s = "jumplings";
Result r = maxAsciiDiff(s);
System.out.println("Maximum ASCII difference: " + r.diff);
System.out.println("Characters: '" + r.c1 + "' and '" + r.c2 + "'");
}
}
/*
run:
Maximum ASCII difference: 12
Characters: 'g' and 's'
*/