<?php

namespace App;

/**
 * Generate a String With Characters That Have Odd Counts
 *
 * Given an integer n, return a string with n characters such that each character in such string occurs an odd number of
 * times. The returned string must contain only lowercase English letters. If there are multiples valid strings, return
 * any of them.
 *
 * Example 1:
 * Input: n = 4
 * Output: "pppz"
 * Explanation: "pppz" is a valid string since the character 'p' occurs three times and the character 'z' occurs once.
 * Note that there are many other valid strings such as "ohhh" and "love".
 *
 * Example 2:
 * Input: n = 2
 * Output: "xy"
 * Explanation: "xy" is a valid string since the characters 'x' and 'y' occur once. Note that there are many other valid
 * strings such as "ag" and "ur".
 *
 * Example 3:
 * Input: n = 7
 * Output: "holasss"
 *
 * https://leetcode.com/problems/generate-a-string-with-characters-that-have-odd-counts/description
 */
class GenerateStringWithCharactersThatHaveOddCounts
{
    /**
     * @param int $num
     * @return string
     */
    public function generateTheString(int $num): string
    {
        if ($num === 1) {
            return 'x';
        }
        if (($num % 2) === 0) {
            return  str_repeat('x', $num - 1) . 'y';
        }
        return str_repeat('x', $num - 2) . 'y' . 'z';
    }
}
