LogoLogo
  • CP Gymnasium
  • Week 3 Math / Number Theory
    • Week 3 Math / Number Theory
      • Problem 1: Tetration
      • Problem 2: Peragrams
      • Problem 3: Veci
      • Problem 4: Architecture
      • Problem 5: Joint Attack
      • Problem 6: How Many Digits?
      • Problem 7: Abstract Painting
  • Week 4 Array / Greedy
    • Week 4 Array / Greedy
      • Problem 1: Vaccine Efficacy
      • Problem 2: Frosh Week
      • Problem 3: Inquiry
      • Problem 4: Bank Queue
      • Problem 5: Log Land
  • Week 6 Sorting / Binary Search
    • Week 6 Sorting / Binary Search
      • Problem 1: Falling Apart
      • Problem 2: Synchronizing Lists
      • Problem 3: Distributing Ballot Boxes
      • Problem 4: Financial Planning
      • Problem 5: Big Boxes
  • Week 7 Dynamic Programming
    • Week 7 Dynamic Programming
      • Problem 1: Ocean's Anti-11
      • Problem 2: Batmanacci
      • Problem 3: Radio Commercials
      • Problem 4: Welcome to Code Jam (Hard)
      • Problem 5: Honeycomb Walk
  • Week 8 Graph Traversals
    • Week 8 Graph Traversals
      • Problem 1: Reachable Roads
      • Problem 2: Money Matters
      • Problem 3: Squawk Virus
      • Problem 4: Beehives
      • Problem 5: Running MoM
      • Problem 6: Amanda Lounges
Powered by GitBook
On this page
  1. Week 3 Math / Number Theory
  2. Week 3 Math / Number Theory

Problem 2: Peragrams

https://open.kattis.com/problems/peragrams

Palindromes are symmetrical, so each character—except possibly the middle character—is repeated. Examples:

  • abcba - all characters except the middle character are repeated

  • abba - all characters repeated (no middle character)

A string is a peragram if at most one character appear in the string an odd number of times, while all other characters appear an even number of times.

To figure out the number of characters that must be removed from a string to make a peragram:

  1. Count the number of occurrences of each letter (can be done using an array/vector of 26 integers)

  2. Ignore all letters with an even # of occurrences, and ignore the first letter with an odd # of occurrences (if it exists)

  3. For all remaining letters, delete exactly one character to convert to an even # of occurrences

PreviousProblem 1: TetrationNextProblem 3: Veci

Last updated 4 years ago