Given a String str containing only lowercase English alphabets and an integer K. The task is to check that whether the string can be converted to a Pangram by performing at most K changes. In one change we can remove any existing character and add a new character.
Pangram: A pangram is a sentence containing every letter in the English Alphabet.
Note: Given that length of string is greater than 26 always and in one operation we have to remove an existing element to add a new element.
Examples:
Input : str = "qwqqwqeqqwdsdadsdasadsfsdsdsdasasas"
K = 4
Output : False
Explanation : Making just 4 modifications in this string,
it can't be changed to a pangram.
Input : str = "qwqqwqeqqwdsdadsdasadsfsdsdsdasasas"
K = 24
Output : True
Explanation : By making 19 modifications in the string,
it can be changed to a pangram.
Approach:
- Traverse the string character by character to keep track of all the characters present in the array using a boolean visit array.
- Using a variable count, traverse the visit array to keep count of the missing characters.
- If count value is less than or equal to K, print True.
- Else print False.
Below is the implementation of above approach:
C++
// C++ program to check if a// String can be converted // to Pangram by atmost k modifications #include<bits/stdc++.h>using namespace std;// Function to find if string // can be converted to Pangram// by atmost k modifications bool isPangram(string S, int k) { if (S.length() < 26) return false; // visit array to keep track // of all the characters // present in the array int visited[26]; for(int i = 0; i < S.length(); i++) visited[S[i] - 'a'] = true; // A variable to keep count // of characters missing // in the string int count = 0; for(int i = 0; i < 26; i++) { if (!visited[i]) count += 1; } // Comparison of count // with given value K if(count <= k ) return true; return false;} // Driver Codeint main(){ string S = "thequickquickfoxmumpsoverthelazydog"; int k = 15; // function calling isPangram(S, k) ? cout<< "true" : cout<< "false"; return 0;}// This code is contributed by ChitraNayal |
Java
// Java Program to check if a String can be // converted to Pangram by atmost k modificationspublic class GFG { // Function to find if string can be converted // to Pangram by atmost k modifications static boolean isPangram(String S, int k) { if (S.length() < 26) return false; // visit array to keep track of all // the characters present in the array boolean[] visited = new boolean[26]; for (int i = 0; i < S.length(); i++) { visited[S.charAt(i) - 'a'] = true; } // A variable to keep count of // characters missing in the string int count = 0; for (int i = 0; i < 26; i++) { if (!visited[i]) count++; } // Comparison of count with given value K if (count <= k) return true; return false; } // Driver code public static void main(String[] args) { String S = "thequickquickfoxmumpsoverthelazydog"; int k = 15; System.out.print(isPangram(S, k)); }} |
Python 3
# Python 3 program to check # if a String can be converted # to Pangram by atmost k modifications # Function to find if string # can be converted to Pangram# by atmost k modifications def isPangram(S, k) : if len(S) < 26 : return False # visit array to keep track # of all the characters # present in the array visited = [0] * 26 for char in S : visited[ord(char) - ord('a')] = True # A variable to keep count # of characters missing # in the string count = 0 for i in range(26) : if visited[i] != True : count += 1 # Comparison of count # with given value K if count <= k : return True return False # Driver Codeif __name__ == "__main__" : S = "thequickquickfoxmumpsoverthelazydog" k = 15 # function calling print(isPangram(S,k)) # This code is contributed by ANKITRAI1 |
C#
// C# Program to check if a // String can be converted to // Pangram by atmost k modifications using System;class GFG { // Function to find if string // can be converted to Pangram // by atmost k modifications static bool isPangram(String S, int k) { if (S.Length < 26) return false; // visit array to keep track // of all the characters present // in the array bool[] visited = new bool[26]; for (int i = 0; i < S.Length; i++) { visited[S[i] - 'a'] = true; } // A variable to keep count // of characters missing in // the string int count = 0; for (int i = 0; i < 26; i++) { if (!visited[i]) count++; } // Comparison of count with // given value K if (count <= k) return true; return false; } // Driver code public static void Main() { string S = "thequickquickfoxmumpsoverthelazydog"; int k = 15; Console.WriteLine(isPangram(S, k)); } } // This code is contributed// by inder_verma. |
PHP
<?php // PHP program to check if a // String can be converted // to Pangram by atmost k modifications // Function to find if string // can be converted to Pangram// by atmost k modifications function isPangram($S, $k) { if (strlen($S) < 26) return false; // visit array to keep track // of all the characters // present in the array $visited = array_fill(0, 26, NULL); for($i = 0; $i < strlen($S); $i++) $visited[ord($S[$i]) - ord('a')] = true; // A variable to keep count // of characters missing // in the string $count = 0; for($i = 0; $i < 26; $i++) { if ($visited[$i] != true) $count += 1; } // Comparison of count // with given value K if ($count <= $k ) return true; return false;} // Driver Code$S = "thequickquickfoxmumpsoverthelazydog";$k = 15; // function calling echo isPangram($S, $k)? "true" : "false"; // This code is contributed by ChitraNayal?> |
Javascript
<script> // JavaScript Program to check if a // String can be converted to // Pangram by atmost k modifications // Function to find if string // can be converted to Pangram // by atmost k modifications function isPangram(S, k) { if (S.length < 26) return false; // visit array to keep track // of all the characters present // in the array var visited = new Array(26); for (var i = 0; i < S.length; i++) { visited[S[i].charCodeAt(0) - "a".charCodeAt(0)] = true; } // A variable to keep count // of characters missing in // the string var count = 0; for (var i = 0; i < 26; i++) { if (!visited[i]) count++; } // Comparison of count with // given value K if (count <= k) return true; return false; } // Driver code var S = "thequickquickfoxmumpsoverthelazydog"; var k = 15; document.write(isPangram(S, k)); </script> |
true
Complexity Analysis:
- Time Complexity: O(|S|) ,where S is the given string
- Space Complexity : O(26) ,to store characters.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

… [Trackback]
[…] There you can find 48343 more Info to that Topic: geeksforgeeks.org/check-if-a-string-can-be-converted-to-pangram-in-k-changes/ […]
… [Trackback]
[…] Find More Information here to that Topic: geeksforgeeks.org/check-if-a-string-can-be-converted-to-pangram-in-k-changes/ […]
… [Trackback]
[…] There you will find 85540 more Info on that Topic: geeksforgeeks.org/check-if-a-string-can-be-converted-to-pangram-in-k-changes/ […]