Open In App

Generate two output strings depending upon occurrence of character in input string.

Improve
Improve
Like Article
Like
Save
Share
Report

Given an input string str[], generate two output strings. One of which consists of those character which occurs only once in input string and second which consists of multi-time occurring characters. Output strings must be sorted.
Examples: 
 

Input : str[] = "geeksforgeeks"
Output : String with characters occurring once:
for
String with characters occurring multiple times:
egks

Input : str[] = "geekspractice"
Output : String with characters occurring once:
agikprst
String with characters occurring multiple times:
ce

 

Approach : We follow total two steps to generate the both output strings. 
Step 1: Create a count array and count occurrences of characters in the given input string. 
Step 2: Check count array for each position ‘i’ which leads to three possible conditions : 
a) If count value is 1, append character in first output string. 
b) If count value is greater than 1, append character in second output string. 
c) If count value is 0 do nothing.
Time Complexity for above approach is O(n). 
Auxiliary Space required is O(1). 
 

C++




// CPP program to print two strings
// made of character occurring once
// and multiple times
#include <bits/stdc++.h>
using namespace std;
 
const int MAX_CHAR = 256;
 
// function to print two strings
// generated from single string one
// with characters occurring once
// other with character occurring
// multiple of times
void printDuo(string &str)
{
    // initialize hashtable with zero
    // entry
    int countChar[MAX_CHAR] = { 0 };
 
    // perform hashing for input string
    int n = str.length();
    for (int i = 0; i < n; i++)
        countChar[str[i] - 'a']++;
 
    // generate string (str1) consisting
    // char occurring once and string
    // (str2) consisting char occurring
    // multiple times
    string str1 = "", str2 = ""
    for (int i = 0; i < MAX_CHAR; i++) {
        if (countChar[i] > 1)
            str2 = str2 + (char)(i + 'a');
        else if (countChar[i] == 1)
            str1 = str1 + (char)(i + 'a');
    }
 
    // print both strings
    cout << "String with characters occurring "
         <<  "once:\n";
    cout << str1 << "\n";
    cout << "String with characters occurring "
         << "multiple times:\n";
    cout << str2 << "\n";
}
 
// driver program
int main()
{
    string str = "lovetocode";
    printDuo(str);
    return 0;
}


Java




// Java program to print two strings
// made of character occurring once
// and multiple times
 
class GFG {
 
    final static int MAX_CHAR = 256;
 
// function to print two strings
// generated from single string one
// with characters occurring once
// other with character occurring
// multiple of times
    static void printDuo(String str) {
        // initialize hashtable with zero
        // entry
        int countChar[] = new int[MAX_CHAR];
 
        // perform hashing for input string
        int n = str.length();
        for (int i = 0; i < n; i++) {
            countChar[str.charAt(i) - 'a']++;
        }
 
        // generate string (str1) consisting
        // char occurring once and string
        // (str2) consisting char occurring
        // multiple times
        String str1 = "", str2 = "";
        for (int i = 0; i < MAX_CHAR; i++) {
            if (countChar[i] > 1) {
                str2 = str2 + (char) (i + 'a');
            } else if (countChar[i] == 1) {
                str1 = str1 + (char) (i + 'a');
            }
        }
 
        // print both strings
        System.out.print("String with characters occurring "
                + "once:\n");
        System.out.print(str1 + "\n");
        System.out.print("String with characters occurring "
                + "multiple times:\n");
        System.out.print(str2 + "\n");
        System.out.print("");
    }
 
// driver program
    public static void main(String[] args) {
        String str = "lovetocode";
        printDuo(str);
 
    }
}
//this code contributed by 29AJayKumar


Python3




# Python3 program to print two strings
# made of character occurring once
# and multiple times
 
MAX_CHAR = 256
 
# function to print two strings
# generated from single string one
# with characters occurring once
# other with character occurring
# multiple of times
def printDuo(string):
 
    # initialize hashtable with zero
    # entry
    countChar = [0 for i in range(MAX_CHAR)]
 
    # perform hashing for input string
    n = len(string)
    for i in range(n):
        countChar[ord(string[i]) - ord('a')] += 1
 
    # generate string (str1) consisting
    # char occurring once and string
    # (str2) consisting char occurring
    # multiple times
    str1 = ""
    str2 = ""
    for i in range(MAX_CHAR):
        if (countChar[i] > 1):
            str2 = str2 + chr(i + ord('a'))
        elif (countChar[i] == 1):
            str1 = str1 + chr(i + ord('a'))
     
    # print both strings
    print("String with characters occurring once:",
                                        "\n", str1)
    print("String with characters occurring",
               "multiple times:", "\n", str2)
 
# Driver Code
string = "lovetocode"
printDuo(string)
 
# This code is contributed by
# Mohit kumar 29


C#




// C# program to print two strings
// made of character occurring once
// and multiple times
using System;
 
class GFG
{
static int MAX_CHAR = 256;
 
// function to print two strings
// generated from single string one
// with characters occurring once
// other with character occurring
// multiple of times
static void printDuo(string str)
{
    // initialize hashtable with zero
    // entry
    int[] countChar = new int[MAX_CHAR];
 
    // perform hashing for input string
    int n = str.Length;
    for (int i = 0; i < n; i++)
    {
        countChar[str[i] - 'a']++;
    }
 
    // generate string (str1) consisting
    // char occurring once and string
    // (str2) consisting char occurring
    // multiple times
    string str1 = "", str2 = "";
    for (int i = 0; i < MAX_CHAR; i++)
    {
        if (countChar[i] > 1)
        {
            str2 = str2 + (char) (i + 'a');
        }
        else if (countChar[i] == 1)
        {
            str1 = str1 + (char) (i + 'a');
        }
    }
 
    // print both strings
    Console.Write("String with characters "+
                       "occurring once:\n");
    Console.Write(str1 + "\n");
    Console.Write("String with characters occurring " +
                                  "multiple times:\n");
    Console.Write(str2 + "\n");
    Console.Write("");
}
 
// Driver Code
public static void Main()
{
    string str = "lovetocode";
    printDuo(str);
}
}
 
// This code is contributed by ita_c


Javascript




<script>
 
// javascript program to print two strings
// made of character occurring once
// and multiple times
 
var MAX_CHAR = 256;
 
// function to print two strings
// generated from single string one
// with characters occurring once
// other with character occurring
// multiple of times
function printDuo(str)
{
    // initialize hashtable with zero
    // entry
    var countChar = Array(MAX_CHAR).fill(0);
 
    // perform hashing for input string
    var n = str.length;
    for (var i = 0; i < n; i++)
        countChar[str[i].charCodeAt(0) - 'a'.charCodeAt(0)]++;
 
    // generate string (str1) consisting
    // char occurring once and string
    // (str2) consisting char occurring
    // multiple times
    var str1 = "", str2 = ""
    for (var i = 0; i < MAX_CHAR; i++) {
        if (countChar[i] > 1)
            str2 = str2 + String.fromCharCode(i + 'a'.charCodeAt(0));
        else if (countChar[i] == 1)
            str1 = str1 + String.fromCharCode(i + 'a'.charCodeAt(0));
    }
 
    // print both strings
    document.write( "String with characters occurring "
         "once:<br>");
    document.write( str1 + "<br>");
    document.write( "String with characters occurring "
         + "multiple times:<br>");
    document.write( str2 + "<br>");
}
 
// driver program
var str = "lovetocode";
printDuo(str);
 
</script>


Output: 
 

String with characters occurring once:
cdltv
String with characters occurring multiple times:
eo

Time complexity : O(n) 
Auxiliary Space : O(1)

 



Last Updated : 16 Jun, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads