📜  缺少字符以生成字符串Pangram

📅  最后修改于: 2022-05-13 01:57:06.400000             🧑  作者: Mango

缺少字符以生成字符串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