Given a string ‘s’ and a character ‘c’, the task is to find the number of permutations of the string in which all the occurrences of the character ‘c’ will be together (one after another).
Input: Str = “AKA” ch = ‘A’
All the unique permutations of AKA are : AKA, AAK and KAA
‘A’ comes consecutively only twice. Hence, the answer is 2
Input: str= “MISSISSIPPI” ch = ‘S’
- Generate all the permutations of the given string.
- For each permutation check whether all occurrences of the character appear together.
- Count of the permutations from the previous step is the answer.
Efficient Approach: Let the length of the string be ‘l’ and frequency of the character in the string be ‘n’.
- Store the frequency of every character of the string.
- If the character is not present in the string then the output will be ‘0’.
- Consider all the occurrences of the character as a combined single character.
- So, ‘l’ will become ‘l – occ + 1’ where ‘occ’ is the total occurrence of the given character and ‘l’ is the new length of the string.
- Return ( (Factorial of l) / (Product of the factorials of the no. of occurrences of each character except the given character) )
Below is the implementation of the above approach:
$result = $result / fact($has[$i]);
// return the result
// Driver Code
$str = “MISSISSIPPI”;
// Assuming the string and the character
// are all in uppercase
echo getResult($str, ‘S’).”\n” ;
// This code is contributed by ita_c
- Remove all occurrences of a character in a string
- Count occurrences of a character in a repeated string
- Print the string by ignoring alternate occurrences of any character
- Longest subsequence where each character occurs at least k times
- Lexicographically largest subsequence such that every character occurs at least k times
- Number of unique permutations starting with 1 of a Binary String
- Check if all occurrences of a character appear together
- Minimize ASCII values sum after removing all occurrences of one character
- Count of number of given string in 2D character array
- Maximum number of characters between any two same character in a string
- Maximum length prefix of one string that occurs as subsequence in another
- Find a string such that every character is lexicographically greater than its immediate next character
- Replace every character of string by character whose ASCII value is K times more than it
- Check if frequency of character in one string is a factor or multiple of frequency of same character in other string
- Count occurrences of a string that can be constructed from another given string
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.