Post History
Two words are anagrams of each other if the letters of one can be reordered to spell the other; e.g. ADOBE and ABODE are anagrams. An alternate way of describing it is that both words contain the s...
#2: Post edited
Is it a near-anagram?
- Two words are [anagrams](https://en.wikipedia.org/wiki/Anagram) of each other if the letters of one can be reordered to spell the other; e.g. ADOBE and ABODE are anagrams. An alternate way of describing it is that both words contain the same count of each letter. If you were to make a table:
- ADOBE ABODE
- ----- -----
- A: 1 A: 1
- B: 1 B: 1
- D: 1 D: 1
- E: 1 E: 1
- O: 1 O: 1
- We can define a "near-anagram" as a pair of words that are *almost* anagrams, in the sense that they differ by only one letter. For example, TULIP and TUPLE are near-anagrams. TUPLE can be rearranged to spell TULEP, which differs from TULIP by only one letter. As a table:
- TUPLE TULIP
- ----- -----
- E: 1 I: 1
- L: 1 L: 1
- P: 1 P: 1
- T: 1 T: 1
- U: 1 U: 1
- # Challenge
- The challenge is to take two strings as input and determine if they are near-anagrams.
- - The strings can be taken in any convenient format for your language (strings, sequences of characters, etc.)
- - The output can be any two distinct values, as long as they are always consistent; e.g. 0 and 1 for false and true.
- - The strings will only contain alphabet characters in a single case. You can assume either upper or lower, whichever is convenient; examples are in upper. Input will contain no whitespace. (It is acceptable to take the input as a single string containing the words separated by whitespace, if it is convenient.)
- - You can assume the strings will not be the same. A decision problem to handle equal strings is not very interesting. They may be proper anagrams, however.
- - You can assume the input is not empty.
- - The two words might not be the same length; they may differ by one letter at most (see test cases.)
Winning criteria is code-golf. Shortest answer in each language wins.- # Test Cases
- ADOBE ABODE -> false (proper anagram)
- TUPLE TULIP -> true (near-anagram)
- ABCDE DADBC -> true (two Ds)
- BAR BARN -> true (one extra letter)
- BARN BARREN -> false (too different)
- Two words are [anagrams](https://en.wikipedia.org/wiki/Anagram) of each other if the letters of one can be reordered to spell the other; e.g. ADOBE and ABODE are anagrams. An alternate way of describing it is that both words contain the same count of each letter. If you were to make a table:
- ADOBE ABODE
- ----- -----
- A: 1 A: 1
- B: 1 B: 1
- D: 1 D: 1
- E: 1 E: 1
- O: 1 O: 1
- We can define a "near-anagram" as a pair of words that are *almost* anagrams, in the sense that they differ by only one letter. For example, TULIP and TUPLE are near-anagrams. TUPLE can be rearranged to spell TULEP, which differs from TULIP by only one letter. As a table:
- TUPLE TULIP
- ----- -----
- E: 1 I: 1
- L: 1 L: 1
- P: 1 P: 1
- T: 1 T: 1
- U: 1 U: 1
- # Challenge
- The challenge is to take two strings as input and determine if they are near-anagrams.
- - The strings can be taken in any convenient format for your language (strings, sequences of characters, etc.)
- - The output can be any two distinct values, as long as they are always consistent; e.g. 0 and 1 for false and true.
- - The strings will only contain alphabet characters in a single case. You can assume either upper or lower, whichever is convenient; examples are in upper. Input will contain no whitespace. (It is acceptable to take the input as a single string containing the words separated by whitespace, if it is convenient.)
- - You can assume the strings will not be the same. A decision problem to handle equal strings is not very interesting. They may be proper anagrams, however.
- - You can assume the input is not empty.
- - The two words might not be the same length; they may differ by one letter at most (see test cases.)
- Winning criteria is <a class="badge is-tag">code-golf</a>. Shortest answer in each language wins.
- # Test Cases
- ADOBE ABODE -> false (proper anagram)
- TUPLE TULIP -> true (near-anagram)
- ABCDE DADBC -> true (two Ds)
- BAR BARN -> true (one extra letter)
- BARN BARREN -> false (too different)
#1: Initial revision
Is it a near-anagram?
Two words are [anagrams](https://en.wikipedia.org/wiki/Anagram) of each other if the letters of one can be reordered to spell the other; e.g. ADOBE and ABODE are anagrams. An alternate way of describing it is that both words contain the same count of each letter. If you were to make a table: ADOBE ABODE ----- ----- A: 1 A: 1 B: 1 B: 1 D: 1 D: 1 E: 1 E: 1 O: 1 O: 1 We can define a "near-anagram" as a pair of words that are *almost* anagrams, in the sense that they differ by only one letter. For example, TULIP and TUPLE are near-anagrams. TUPLE can be rearranged to spell TULEP, which differs from TULIP by only one letter. As a table: TUPLE TULIP ----- ----- E: 1 I: 1 L: 1 L: 1 P: 1 P: 1 T: 1 T: 1 U: 1 U: 1 # Challenge The challenge is to take two strings as input and determine if they are near-anagrams. - The strings can be taken in any convenient format for your language (strings, sequences of characters, etc.) - The output can be any two distinct values, as long as they are always consistent; e.g. 0 and 1 for false and true. - The strings will only contain alphabet characters in a single case. You can assume either upper or lower, whichever is convenient; examples are in upper. Input will contain no whitespace. (It is acceptable to take the input as a single string containing the words separated by whitespace, if it is convenient.) - You can assume the strings will not be the same. A decision problem to handle equal strings is not very interesting. They may be proper anagrams, however. - You can assume the input is not empty. - The two words might not be the same length; they may differ by one letter at most (see test cases.) Winning criteria is code-golf. Shortest answer in each language wins. # Test Cases ADOBE ABODE -> false (proper anagram) TUPLE TULIP -> true (near-anagram) ABCDE DADBC -> true (two Ds) BAR BARN -> true (one extra letter) BARN BARREN -> false (too different)