Skip to content

Instantly share code, notes, and snippets.

@dalexsoto
Forked from davidfowl/IsPalindrome.cs
Created February 3, 2020 01:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dalexsoto/413e102973462f7d4f0a02942e0d7d92 to your computer and use it in GitHub Desktop.
Save dalexsoto/413e102973462f7d4f0a02942e0d7d92 to your computer and use it in GitHub Desktop.
Works for surrogate pairs
static bool IsPalin(string s)
{
var bi = s.Length - 1;
foreach (var r in s.EnumerateRunes())
{
if (!Rune.TryGetRuneAt(s, bi - (r.Utf16SequenceLength - 1), out var b) || !r.Equals(b))
{
return false;
}
bi -= r.Utf16SequenceLength;
}
return true;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment