Crate anagram

Source
Expand description

A collection of anagram utility functions

§Installation

Add anagram = 0.3.0 to your Cargo.toml

§Examples

use anagram::{count, get_next, is_anagram, occurences};

fn main() {
  // count how many anagrams can be formed from a given word
  let anagram_count = count("ordeals");
  assert_eq!(anagram_count, 5040);

  // count the number of occurences of an anagram in a given word
  let occur = occurences("helloworldhello", "ll");
  assert_eq!(occur, 2);

  // check if a word is an anagram of another word
  let ok = is_anagram("rustiscool", "oolcsistru");
  assert_eq!(ok, true);

  // get the next lexicographically greater anagram
  let next = get_next("abcdefg");
  assert_eq!(next, "abcdegf");

  // get all anagrams of a word
  let mut word: String = String::from("abc");
  for _ in 0..count(&word) {
    // get next anagram
    word = get_next(&word);
    println!("{}", word);
  }
}

Functions§

count
Count the number of anagrams that can be formed from a word
get_next
Get the next lexicographically greater permutation This function will return either the next greater permutation or the lexicographically smallest permutation if the given word is the lexicographically greatest permutation Examples: “abc” -> “acb” “cba” -> “abc”
is_anagram
Check if a word is an anagram of another word
occurences
Count the number of occurences of an anagram in a word