Algorithms and Data Structures

  • Profound Academy

    • Status
      • 1
        Implementation
      • 2
        Bitwise operations
      • 3
        Prefix Sums
      • 4
        Sliding window / Two pointers
      • 5
        Modular Arithmetic
      • 6
        Number Theory
      • 7
        Binary Search
      • 8
        Basic Sorting
      • 9
        Greedy Algorithms
      • 10
        Basic Dynamic Programming
      • 11
        Recursion
      • 12
        Linked LIst
      • 13
        Queue & Stack
      • 14
        Binary tree + BST
      • 15
        Divide & Conquer + Advanced Sorting
      • 16
        Heap
      • 17
        Hashing
      • 18
        Graph Representation
      • 19
        BFS

  • Plural nouns

    Let’s make a simple program that would turn a singular noun into a plural one. There are several rules that we would like to follow:
    1. For regular nouns, add s to the end (cat → cats, house → houses, etc)
    1. If the noun ends with s, ss, sh, ch, x, or z, add es to the end (bus → buses, tax → taxes, etc)
    1. If the noun ends with y, and the letter before y is a consonant, change the ending to ies (city → cities, puppy → puppies)
    1. If the noun ends with y, and the letter before y is a vowel, add s (ray → rays, boy → boys, etc)

    Input

    The input contains a single word w (1 ≤ |w| ≤ 100).

    Output

    The program should print the plural version of w.

    Examples

    Input
    Output
    bus
    buses
    cat
    cats
    table
    tables
     

    Constraints

    Time limit: 1 seconds

    Memory limit: 512 MB

    Output limit: 1 MB

    To check your solution you need to sign in
    Sign in to continue