GY-63_MS5611/libraries/palindrome/readme.md
2021-12-03 15:28:47 +01:00

2.3 KiB

Arduino CI Arduino-lint JSON check License: MIT GitHub release

Palindrome

Library for palindrome search

Description

The palindrome library can test if a string is a palindrome and is able to find the longest palindrome within a character string.

The library is tested with an Arduino UNO, random string of 1600 characters.

Interface

  • palindrome() constructor.
  • int findPalindrome(const char * str, int & position, int & length) find the longest palindrome in a string. (first occurrence).
  • int findEvenPalindrome(const char * str, int & position, int & length) find the longest palindrome in a string with even length. (first occurrence).
  • int findOddPalindrome(const char * str, int & position, int & length) find the longest palindrome in a string with odd length. (first occurrence).
  • bool isPalindrome(const char * str) checks if a string is a palindrome.
  • int palindromeCount(const char * str) returns the count of matching pairs in a string. This is at most the length / 2 + 1.
  • float palindromePercentage(const char * str) returns the count as percentage 0.0 .. 100.0 %

Operation

The examples show the basic working of the functions.

Questions

  • is an empty string a palindrome?

Future

  • update documentation
  • should this be a class?
  • function names?
    • palindromeCount -- symmetryCount?
    • palindromePercentage -- symmetryPercentage?
  • improve algorithms
    • merge odd / even find algorithms?
  • investigate Print interface?
  • investigate palindrome for numbers - radix 2..16 (36?)
  • investigate case (in)sensitive flag?
  • investigate ignore spaces flag?