Given a string str, the task is to find the count of all the sub-strings of length four whose characters can be rearranged to form the word “clap”.
Examples:
Input: str = “clapc”
Output: 2
“clap” and “lapc” are the required sub-stringsInput: str = “abcd”
Output: 0
Approach: For every sub-string of length four, count the occurrences of the characters from the word “clap”. If every character has the occurrence exactly one in the sub-string then increment the count. Print the count in the end.
Below is the implementation of the above approach:
C++
// CPP implementation of the approach#include<bits/stdc++.h>using namespace std;// Function to return the count of// required occurrenceint countOcc(string s){ // To store the count of occurrences int cnt = 0; // Check first four characters from ith position for (int i = 0; i < s.length() - 3; i++) { // Variables for counting the required characters int c = 0, l = 0, a = 0, p = 0; // Check the four contiguous characters which // can be reordered to form 'clap' for (int j = i; j < i + 4; j++) { switch (s[j]) { case 'c': c++; break; case 'l': l++; break; case 'a': a++; break; case 'p': p++; break; } } // If all four contiguous characters are present // then increment cnt variable if (c == 1 && l == 1 && a == 1 && p == 1) cnt++; } return cnt;}// Driver codeint main(){ string s = "clapc"; transform(s.begin(), s.end(), s.begin(), ::tolower); cout << (countOcc(s));}// This code is contributed by// Surendra_Gangwar |
Java
// Java implementation of the approachclass GFG { // Function to return the count of // required occurrence static int countOcc(String s) { // To store the count of occurrences int cnt = 0; // Check first four characters from ith position for (int i = 0; i < s.length() - 3; i++) { // Variables for counting the required characters int c = 0, l = 0, a = 0, p = 0; // Check the four contiguous characters which // can be reordered to form 'clap' for (int j = i; j < i + 4; j++) { switch (s.charAt(j)) { case 'c': c++; break; case 'l': l++; break; case 'a': a++; break; case 'p': p++; break; } } // If all four contiguous characters are present // then increment cnt variable if (c == 1 && l == 1 && a == 1 && p == 1) cnt++; } return cnt; } // Driver code public static void main(String args[]) { String s = "clapc"; System.out.print(countOcc(s.toLowerCase())); }} |
Python3
# Python3 implementation of the approach# Function to return the count of# required occurrencedef countOcc(s): # To store the count of occurrences cnt = 0 # Check first four characters from ith position for i in range(0, len(s) - 3): # Variables for counting the required characters c, l, a, p = 0, 0, 0, 0 # Check the four contiguous characters # which can be reordered to form 'clap' for j in range(i, i + 4): if s[j] == 'c': c += 1 elif s[j] == 'l': l += 1 elif s[j] == 'a': a += 1 elif s[j] == 'p': p += 1 # If all four contiguous characters are # present then increment cnt variable if c == 1 and l == 1 and a == 1 and p == 1: cnt += 1 return cnt # Driver codeif __name__ == "__main__": s = "clapc" print(countOcc(s.lower())) # This code is contributed by Rituraj Jain |
C#
// C# implementation of the approachusing System;class GFG {// Function to return the count of// required occurrencestatic int countOcc(string s){ // To store the count of occurrences int cnt = 0; // Check first four characters // from ith position for (int i = 0; i < s.Length - 3; i++) { // Variables for counting the // required characters int c = 0, l = 0, a = 0, p = 0; // Check the four contiguous characters // which can be reordered to form 'clap' for (int j = i; j < i + 4; j++) { switch (s[j]) { case 'c': c++; break; case 'l': l++; break; case 'a': a++; break; case 'p': p++; break; } } // If all four contiguous characters are // present then increment cnt variable if (c == 1 && l == 1 && a == 1 && p == 1) cnt++; } return cnt;}// Driver codepublic static void Main(){ string s = "clapc"; Console.Write(countOcc(s.ToLower()));}}// This code is contributed by Akanksha Rai |
PHP
<?php// PHP implementation of the approach // Function to return the count of // required occurrence function countOcc($s) { // To store the count of occurrences $cnt = 0; // Check first four characters // from ith position for ($i = 0; $i < strlen($s) - 3; $i++) { // Variables for counting the // required characters $c = 0; $l = 0; $a = 0; $p = 0; // Check the four contiguous characters // which can be reordered to form 'clap' for ($j = $i; $j < $i + 4; $j++) { switch ($s[$j]) { case 'c': $c++; break; case 'l': $l++; break; case 'a': $a++; break; case 'p': $p++; break; } } // If all four contiguous characters are present // then increment cnt variable if ($c == 1 && $l == 1 && $a == 1 && $p == 1) $cnt++; } return $cnt; } // Driver code $s = "clapc"; echo countOcc(strtolower($s)); // This code is contributed by Ryuga?> |
Javascript
<script>// Javascript implementation of the approach// Function to return the count of// required occurrencefunction countOcc(s){ // To store the count of occurrences var cnt = 0; // Check first four characters from ith position for (var i = 0; i < s.length - 3; i++) { // Variables for counting the required characters var c = 0, l = 0, a = 0, p = 0; // Check the four contiguous characters which // can be reordered to form 'clap' for (var j = i; j < i + 4; j++) { switch (s[j]) { case 'c': c++; break; case 'l': l++; break; case 'a': a++; break; case 'p': p++; break; } } // If all four contiguous characters are present // then increment cnt variable if (c == 1 && l == 1 && a == 1 && p == 1) cnt++; } return cnt;}// Driver codevar s = "clapc";s = s.toLowerCase();document.write(countOcc(s));</script> |
2
Time Complexity: O(n2)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!
