From c17744a5e900f5a2198d6a5a782c4dfd9c4ec98e Mon Sep 17 00:00:00 2001 From: Zach DeCook Date: Mon, 17 Aug 2026 08:25:23 -0400 Subject: Add zanagrams solver --- zanagrams/zanagrams.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100755 zanagrams/zanagrams.sh (limited to 'zanagrams/zanagrams.sh') diff --git a/zanagrams/zanagrams.sh b/zanagrams/zanagrams.sh new file mode 100755 index 0000000..52f82db --- /dev/null +++ b/zanagrams/zanagrams.sh @@ -0,0 +1,14 @@ +#!/bin/sh +letters="$1" +dots="$(printf "%s" "$letters" | tr '.[:alpha:]' '.')." +# TODO: Don't allow repeats unless they actually repeat + +letters_used_once="$(printf "%s" "$letters" | sed 's/./\0\n/g' | sort | uniq -c | grep ' 1 '| grep -o '[a-z]$' | tr -d '\n')" +letters_used_twice="$(printf "%s" "$letters" | sed 's/./\0\n/g' | sort | uniq -c | grep ' 2 '| grep -o '[a-z]$' | tr -d '\n')" + +lengthsort() { + awk '{ print length, $0 }' | sort -n | awk '{$1=""; print $2}' +} + +# cafe is in the dictionary with an accent +cat /etc/dictionaries-common/words | sed 's/é/e/g' | grep -i '^['"$letters"']*$' | grep -v "$dots" | grep .... | onceletters.py "$letters_used_once" | onceletters.py "$letters_used_twice" 2 | nearletters.py "$letters" | lengthsort -- cgit 1.4.1