30-seconds-of-java
30-seconds-of-java copied to clipboard
Damm algorithm
In error detection, the Damm algorithm is a check digit algorithm that detects all single-digit errors and all adjacent transposition errors.
https://en.wikipedia.org/wiki/Damm_algorithm
This issue has been automatically marked as stale because it has not had recent activity. The issue will be unassigned if no further activity occurs. Thank you for your contributions.
Hi, I implemented three snippets of the Damm algorithm validation.
- Traditional for loop
boolean damm(String s) {
int row = 0;
for (int i = 0; i < s.length(); i++) {
row = table[row][s.charAt(i) - '0'];
}
return row == 0;
}
- Enhanced for loop
boolean damm(String s) {
int row = 0;
for (var c : s.toCharArray()) {
row = table[row][c - '0'];
}
return row == 0;
}
- Stream
boolean damm(String s) {
return s.chars().reduce(0, (row, col) -> table[row][col - '0']) == 0;
}
This issue has been automatically marked as stale because it has not had recent activity. The issue will be unassigned if no further activity occurs. Thank you for your contributions.