Table of Contents

## Problem Statement

In this problem, we are given a length. We have to generate a string that has all characters an odd number of times. For example, aaaaab is a valid string because count(a)=5 and count(b)=1.

But, aaabbc is not a valid string here because count(b)=2 which is an even number.

### Example

n = 4

"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”.

n = 2

"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”.

## Approach

We can use a trick here.

If the length of string is odd number then we can use a single character throughout to create the string, and if the input length is even number then we can create a string having just two characters.

One character occuring n-1 times (which will be an odd number because n is even here) and anoter character just once (which is ofcourse an odd count).

For example n=4, our output will be aaab

and if n=3, our output will be aaa

we are just using characters a and b in our solution, there are more options of characters if you want.

## Implementation

### C++ Program for Generate a String With Characters That Have Odd Counts Leetcode Solution

#include <bits/stdc++.h> using namespace std; string generateTheString(int n) { string str; if(n%2==0) { for(int i=0;i<n-1;i++) str.push_back('a'); str.push_back('b'); } else { for(int i=0;i<n;i++) str.push_back('a'); } return str; } int main() { int n=5; cout<< generateTheString(n) << endl; return 0; }

aaaaa

### Java Program for Generate a String With Characters That Have Odd Counts Leetcode Solution

class Rextester { public static String generateTheString(int n) { StringBuilder sb=new StringBuilder(); if(n%2==0) { for(int i=0;i<n-1;i++)sb.append('a'); sb.append('b'); } else { for(int i=0;i<n;i++)sb.append('a'); } return sb.toString(); } public static void main(String[]args) { int length=5; System.out.println(generateTheString(length)); } }

aaaaa

## Complexity Analysis for Generate a String With Characters That Have Odd Counts Leetcode Solution

**Time Complexity**

**O(n):** We are linearly iterating for the length given to just once. Therefore, the time complextity will be O(n).

**Space Complexity **

**O(n):** We are creating our output string, so we are using an extra space of length given. Therefore, space complexity also is O(n).