30-seconds-of-java icon indicating copy to clipboard operation
30-seconds-of-java copied to clipboard

Damm algorithm

Open iluwatar opened this issue 4 years ago • 4 comments

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

iluwatar avatar Oct 19 '21 13:10 iluwatar

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.

stale[bot] avatar Feb 02 '23 16:02 stale[bot]

Hi, I implemented three snippets of the Damm algorithm validation.

  1. 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;
  }
  1. Enhanced for loop
  boolean damm(String s) {
    int row = 0;
    for (var c : s.toCharArray()) {
      row = table[row][c - '0'];
    }
    return row == 0;
  }
  1. Stream
  boolean damm(String s) {
    return s.chars().reduce(0, (row, col) -> table[row][col - '0']) == 0;
  }

AddeusExMachina avatar Mar 02 '23 21:03 AddeusExMachina

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.

stale[bot] avatar May 02 '23 08:05 stale[bot]