缺少字符以生成字符串Pangram
Pangram 是一个包含英文字母表中每个字母的句子。给定一个字符串,找出该字符串中缺少的所有字符,即可以使该字符串成为 Pangram 的字符。我们需要按字母顺序打印输出。
例子:
Input : welcome to geeksforgeeks
Output : abdhijnpquvxyz
Input : The quick brown fox jumps
Output : adglvyz
我们已经讨论了 Pangram 检查。思路类似,我们遍历一个给定的字符串,标记所有访问过的字符。最后,我们打印所有未访问的字符。
小写和大写字符被认为是相同的。
C++
// C++ program to find characters that needs
// to be added to make Pangram
#include
using namespace std;
const int MAX_CHAR = 26;
// Returns characters that needs to be added
// to make str
string missingChars(string str)
{
// A boolean array to store characters
// present in string.
bool present[MAX_CHAR] = {false};
// Traverse string and mark characters
// present in string.
for (int i=0; i= 'a' && str[i] <= 'z')
present[str[i]-'a'] = true;
else if (str[i] >= 'A' && str[i] <= 'Z')
present[str[i]-'A'] = true;
}
// Store missing characters in alphabetic
// order.
string res = "";
for (int i=0; i
Java
// Java program to find characters that
// needs to be added to make Pangram
import java.io.*;
import java.util.ArrayList;
class GFG{
private static ArrayListmissingChars(
String str, int strLength)
{
final int MAX_CHARS = 26;
// A boolean array to store characters
// present in string.
boolean[] present = new boolean[MAX_CHARS];
ArrayList charsList = new ArrayList<>();
// Traverse string and mark characters
// present in string.
for(int i = 0; i < strLength; i++)
{
if ('A' <= str.charAt(i) &&
str.charAt(i) <= 'Z')
present[str.charAt(i) - 'A'] = true;
else if ('a' <= str.charAt(i) &&
str.charAt(i) <= 'z')
present[str.charAt(i) - 'a'] = true;
}
// Store missing characters in alphabetic
// order.
for(int i = 0; i < MAX_CHARS; i++)
{
if (present[i] == false)
charsList.add((char)(i + 'a'));
}
return charsList;
}
// Driver Code
public static void main(String[] args)
{
String str = "The quick brown fox jumps " +
"over the dog";
ArrayList missing = GFG.missingChars(
str, str.length());
if (missing.size() >= 1)
{
for(Character character : missing)
{
System.out.print(character);
}
}
}
}
// This code is contributed by theSardul
Python3
# Python3 program to find characters
# that needs to be added to make Pangram
MAX_CHAR = 26
# Returns characters that needs
# to be added to make str
def missingChars(Str):
# A boolean array to store characters
# present in string.
present = [False for i in range(MAX_CHAR)]
# Traverse string and mark characters
# present in string.
for i in range(len(Str)):
if (Str[i] >= 'a' and Str[i] <= 'z'):
present[ord(Str[i]) - ord('a')] = True
else if (Str[i] >= 'A' and Str[i] <= 'Z'):
present[ord(Str[i]) - ord('A')] = True
# Store missing characters in alphabetic
# order.
res = ""
for i in range(MAX_CHAR):
if (present[i] == False):
res += chr(i + ord('a'))
return res
# Driver code
Str = "The quick brown fox jumps over the dog"
print(missingChars(Str))
# This code is contributed by avanitrachhadiya2155
C#
// C# program to find characters that
// needs to be added to make Pangram
using System.Collections.Generic;
using System;
class GFG{
static ListmissingChars (String str,
int strLength)
{
int MAX_CHARS = 26;
// A boolean array to store
// characters present in string.
bool[] present = new bool[MAX_CHARS];
ListcharsList = new List();
// Traverse string and mark
// characters present in string.
for(int i = 0; i < strLength; i++)
{
if ('A' <= str[i] &&
str[i] <= 'Z')
present[str[i] - 'A'] = true;
else if ('a' <= str[i] &&
str[i] <= 'z')
present[str[i] - 'a'] = true;
}
// Store missing characters
// in alphabetic order.
for(int i = 0; i < 26; i++)
{
if (present[i] == false)
{
charsList.Add((char)(i + 'a'));
}
}
return charsList;
}
// Driver Code
public static void Main()
{
String str = "The quick brown fox jumps over the dog";
List missing = missingChars(str,
str.Length);
if (missing.Count >= 1)
{
foreach (var i in missing)
{
Console.Write(i);
}
}
}
}
// This code is contributed by Stream_Cipher
Javascript
输出:
alyz
时间复杂度: O(n)
辅助空间: O(1)
https://youtu.be/VqGOxv8Fb1E