# 算法设计：缺少字符以组成字符串Pangram

2021年3月14日14:41:02 发表评论 341 次浏览

## 本文概述

Pangram是包含英文字母中每个字母的句子。给定一个字符串, 找到字符串中缺少的所有字符, 即可以使字符串成为Pangram的字符。我们需要按字母顺序打印输出。

``````Input : welcome to lsbin
Output : abdhijnpquvxyz

Input : The quick brown fox jumps

{IDE}

## C ++ 14

``````// C++ program to find characters that needs
// to be added to make Pangram
#include<bits/stdc++.h>
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<str.length(); i++)
{
if (str[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<MAX_CHAR; i++)
if (present[i] == false )
res.push_back(( char )(i+ 'a' ));

return res;
}

// Driver program
int main()
{
string str = "The quick brown fox jumps "
"over the dog" ;
cout << missingChars(str);
return 0;
}``````

## 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 ArrayList<Character>missingChars(
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<Character> 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<Character> 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
elif ( 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``````

``alyz``

O(1) 