JP Morgan Interview Question
AssociatesCountry: United States
have a string alpabet lookup... remove chars from it if its presnt inthe input string...
print remaining letters from the alphabet lookup string
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.println("Enter the string : ");
String input = in.nextLine();
String out = checkPangram(input);
if (out.length() == 0)
System.out.println("Pangram");
else
System.out.println("The letters missing : " + out);
}
private static String checkPangram(String input)
{
input = input.toLowerCase();
String alph = "abcdefghijklmnopqrstuvwxyz";
int max = 26;
for (int i = 0; i < max; i++)
{
int index = input.indexOf(alph.charAt(i));
if (index != -1)
{
alph = alph.substring(0, i) + alph.substring(i + 1);
i--;
max--;
}
}
return alph;
}
from string import ascii_lowercase, punctuation
from collections import defaultdict
def isPanagram(sentence):
sentence = sentence.lower()
letterCount = defaultdict(int)
for letter in ascii_lowercase:
letterCount[letter] = 0
for letter in sentence:
if letter in punctuation:
continue # Skip special characters / punctuation marks
letterCount[letter] += 1
missingLetters = [letter for letter, count in letterCount.items() if count == 0]
if len(missingLetters) == 0:
print('The sentence is a panagram!')
else:
print('The sentence is not a panagram and is missing the letters: ', missingLetters)
isPanagram('Fox nymphs grab quick-jived waltz.')
isPanagram('The quick fox.')
isPanagram('The five boxing wizards jump quickly.')
isPanagram('The five boxing wizards jump.')
public void findMissingLetters(String input){
boolean[] present = new boolean[26];
input = input.toLowerCase();
for(int i=0;i<input.length();i++){
char c = input.charAt(i);
if(c>='a' && c<='z'){
present[c-'a'] = true;
}
}
for(int i=0;i<26;i++){
if(!present[i]){
System.out.print((char)(i+'a') + " ");
}
}
}
public boolean checkPangram(String word){
boolean flag=false;
word=word.toLowerCase();
for(char ch = 'a' ; ch <= 'z' ; ch++){
flag=false;
for(int i=0;i<word.length();i++ ){
if(word.charAt(i)==ch){
flag=true;
break;
}
}
if(false==flag){
System.out.println("missing charature is :" +ch);
break;
}
}
return flag;
}
public class Pangram {
public static void main(String[] args) {
List<Character> alphabetCharList = new ArrayList<>();
char[] alphabetArray = "abcdefghijklmnopqrstuvwxyz".toCharArray();
for (int i = 0; i < alphabetArray.length; i++) {
alphabetCharList.add(alphabetArray[i]);
}
String pangramCheck = "The quick brown fox jumps over the dog".toLowerCase().replaceAll("\\s+","");
char[] pangramArray = pangramCheck.toCharArray();
List<Character> pangramCharList = new ArrayList<>();
for (int i = 0; i < pangramArray.length; i++) {
pangramCharList.add(pangramArray[i]);
}
alphabetCharList.removeAll(pangramCharList);
System.out.println("Missing Letters "+alphabetCharList);
}
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
cin >> s;
string missing="";
int add = 'a';
int alphabet[26] = {0};
for(char c: s)
alphabet[c-'a']++;
for(int i=0; i<26; i++)
if(!alphabet[i])
missing+=((char)(i + add));
cout << (missing.size() ? missing : "Panagram");
return 0;
}
#include<iostream>
#include<map>
#include<algorithm>
#include<string>
using namespace std;
int main(){
string s;
getline(cin, s);
s.erase(remove(s.begin(), s.end(), ' '), s.end());
for(int i = 0; i < s.length(); i++){
s[i] = tolower(s[i]);
}
map<char, int> mp;
for(char ch = 'a'; ch <= 'z'; ch++){
mp[ch]++;
}
for(char c: s){
if(mp.find(c) != mp.end()){
mp[c]--;
if(mp[c] == 0){
mp.erase(c);
}
}
}
if(mp.size() == 0){
cout<<"Panagram"<<endl;
}
else{
for(auto itr = mp.begin(); itr != mp.end(); itr++){
cout<<itr->first<<endl;
}
}
return 0;
}
#include<iostream>
#include<map>
#include<algorithm>
#include<string>
using namespace std;
int main(){
string s;
getline(cin, s);
s.erase(remove(s.begin(), s.end(), ' '), s.end());
for(int i = 0; i < s.length(); i++){
s[i] = tolower(s[i]);
}
map<char, int> mp;
for(char ch = 'a'; ch <= 'z'; ch++){
mp[ch]++;
}
for(char c: s){
if(mp.find(c) != mp.end()){
mp[c]--;
if(mp[c] == 0){
mp.erase(c);
}
}
}
if(mp.size() == 0){
cout<<"Panagram"<<endl;
}
else{
for(auto itr = mp.begin(); itr != mp.end(); itr++){
cout<<itr->first<<endl;
}
}
return 0;
}
#include<iostream>
#include<map>
#include<algorithm>
#include<string>
using namespace std;
int main(){
string s;
getline(cin, s);
s.erase(remove(s.begin(), s.end(), ' '), s.end());
for(int i = 0; i < s.length(); i++){
s[i] = tolower(s[i]);
}
map<char, int> mp;
for(char ch = 'a'; ch <= 'z'; ch++){
mp[ch]++;
}
for(char c: s){
if(mp.find(c) != mp.end()){
mp[c]--;
if(mp[c] == 0){
mp.erase(c);
}
}
}
if(mp.size() == 0){
cout<<"Panagram"<<endl;
}
else{
for(auto itr = mp.begin(); itr != mp.end(); itr++){
cout<<itr->first<<endl;
}
}
return 0;
}
#include<iostream>
#include<map>
#include<algorithm>
#include<string>
using namespace std;
int main(){
string s;
getline(cin, s);
s.erase(remove(s.begin(), s.end(), ' '), s.end());
for(int i = 0; i < s.length(); i++){
s[i] = tolower(s[i]);
}
map<char, int> mp;
for(char ch = 'a'; ch <= 'z'; ch++){
mp[ch]++;
}
for(char c: s){
if(mp.find(c) != mp.end()){
mp[c]--;
if(mp[c] == 0){
mp.erase(c);
}
}
}
if(mp.size() == 0){
cout<<"Panagram"<<endl;
}
else{
for(auto itr = mp.begin(); itr != mp.end(); itr++){
cout<<itr->first<<endl;
}
}
return 0;
}
#include<iostream>
#include<map>
#include<algorithm>
#include<string>
using namespace std;
int main(){
string s;
getline(cin, s);
s.erase(remove(s.begin(), s.end(), ' '), s.end());
for(int i = 0; i < s.length(); i++){
s[i] = tolower(s[i]);
}
map<char, int> mp;
for(char ch = 'a'; ch <= 'z'; ch++){
mp[ch]++;
}
for(char c: s){
if(mp.find(c) != mp.end()){
mp[c]--;
if(mp[c] == 0){
mp.erase(c);
}
}
}
if(mp.size() == 0){
cout<<"Panagram"<<endl;
}
else{
for(auto itr = mp.begin(); itr != mp.end(); itr++){
cout<<itr->first<<endl;
}
}
return 0;
}
#include<iostream>
#include<map>
#include<algorithm>
#include<string>
using namespace std;
int main(){
string s;
getline(cin, s);
s.erase(remove(s.begin(), s.end(), ' '), s.end());
for(int i = 0; i < s.length(); i++){
s[i] = tolower(s[i]);
}
map<char, int> mp;
for(char ch = 'a'; ch <= 'z'; ch++){
mp[ch]++;
}
for(char c: s){
if(mp.find(c) != mp.end()){
mp[c]--;
if(mp[c] == 0){
mp.erase(c);
}
}
}
if(mp.size() == 0){
cout<<"Panagram"<<endl;
}
else{
for(auto itr = mp.begin(); itr != mp.end(); itr++){
cout<<itr->first<<endl;
}
}
return 0;
}
#include<iostream>
#include<map>
#include<algorithm>
#include<string>
using namespace std;
int main(){
string s;
getline(cin, s);
s.erase(remove(s.begin(), s.end(), ' '), s.end());
for(int i = 0; i < s.length(); i++){
s[i] = tolower(s[i]);
}
map<char, int> mp;
for(char ch = 'a'; ch <= 'z'; ch++){
mp[ch]++;
}
for(char c: s){
if(mp.find(c) != mp.end()){
mp[c]--;
if(mp[c] == 0){
mp.erase(c);
}
}
}
if(mp.size() == 0){
cout<<"Panagram"<<endl;
}
else{
for(auto itr = mp.begin(); itr != mp.end(); itr++){
cout<<itr->first<<endl;
}
}
return 0;
}
#include<iostream>
#include<map>
#include<algorithm>
#include<string>
using namespace std;
int main(){
string s;
getline(cin, s);
s.erase(remove(s.begin(), s.end(), ' '), s.end());
for(int i = 0; i < s.length(); i++){
s[i] = tolower(s[i]);
}
map<char, int> mp;
for(char ch = 'a'; ch <= 'z'; ch++){
mp[ch]++;
}
for(char c: s){
if(mp.find(c) != mp.end()){
mp[c]--;
if(mp[c] == 0){
mp.erase(c);
}
}
}
if(mp.size() == 0){
cout<<"Panagram"<<endl;
}
else{
for(auto itr = mp.begin(); itr != mp.end(); itr++){
cout<<itr->first<<endl;
}
}
return 0;
}
public static void isPanagram(String str) {
if (str == null || str.isEmpty())
return;
int[] base = new int[26];
char[] input = str.trim().toLowerCase().toCharArray();
for (char ch : input) {
if (ch >= 97 && ch <= 123)
base[ch % 97] = ch / 97;
}
boolean isNotPanagram = false;
for (int x : base) {
if (x == 0) {
isNotPanagram = true;
break;
}
}
if (isNotPanagram) {
System.out.print(str + " is not a Panagram. Missing alphabets are: ");
for (int i = 0; i < 26; i++) {
if (base[i] == 0) {
System.out.print((char)(97+i) + " ");
}
}
} else {
System.out.println(str + " is a Panagram.");
}
}
No. input string could be empty or have multiple missing letters too.
- lord.claxton March 08, 2018