我想创建一个函数,它接受一个字符串作为输入,并检查字符串是否是pangram(pangram是一段包含字母表中每个字母的文本).
我编写了以下代码,但是我正在寻找另一种方法来实现它,希望是一种简短的方法.
import string
def is_pangram (gram):
gram = gram.lower()
gram_list_old = sorted([c for c in gram if c != ' '])
gram_list = []
for c in gram_list_old:
if c not in gram_list:
gram_list.append(c)
if gram_list == list(string.ascii_lowercase): return True
else: return False
Run Code Online (Sandbox Code Playgroud)
我觉得这个问题可能违反了本网站的规则,但希望事实并非如此.我只是很好奇,并希望看到其他方法来做到这一点.
给出一个包含字母az至少一次的单词列表,你会如何编写一个程序来找到由字符数(不计算空格)计算的最短的pangram作为单词的组合?
由于我不确定是否存在简短的答案,这不是代码高尔夫,而只是讨论如何处理这个问题.但是,如果你认为你可以设法写一个可以做到这一点的短程序,那么继续吧,这可能会变成代码高尔夫:)
我正在尝试编写一个REGEX来测试PANGRAM.我可以用传统的方式做到这一点,但似乎无法通过正则表达式来解决90%以上的测试.
输入:字符串
输出:true || 假
function isPangram(string){
return ___________________.test(string)
}
Run Code Online (Sandbox Code Playgroud)
到目前为止测试结果.
6/10
/([a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z, \s]+)/i
6/10
/[a-z]{1}/i
6/10 /[a-z]/i
6/10 /[a-z]+/i
9/10 /a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z/i
只是失败了abcdefghijklmopqrstuvwxyz
6/10 /[\w.]+/
非常感谢任何帮助或建议.
全字母组合是一个包含字母表中每个字母至少一次的句子。
到目前为止,这是我的代码:
const isPangram = (string) => {
let alpha = string.toUpperCase().split("");
for (let beta = 65; beta < 65 + alpha.length; beta++) {
let gamma = String.fromCharCode(beta);
if (alpha.includes(gamma)) {
continue;
}
else {
return false;
}
}
return true;
}
console.log(isPangram("Detect Pangram"));
Run Code Online (Sandbox Code Playgroud)
为什么“Detect Pangram”返回 true?
我正在尝试编写一个python程序,检查给定的字符串是否为pangram - 包含字母表中的所有字母.
因此,"We promptly judged antique ivory buckles for the next prize"应该返回True任何不包含字母表的每个字母的字符串至少一次返回False.
我相信我应该使用RegEx这个,但我不知道如何.它看起来应该类似于:
import sys
import re
input_string_array = sys.stdin.readlines()
input_string = input_string_array[0]
if (re.search('string contains every letter of the alphabet',input_string):
return True
else:
return False
Run Code Online (Sandbox Code Playgroud) 你们中有些人可能会注意到我已经使用了相同的痛苦代码。接受答案后,我不确定其他问题是否仍未解决。
现在,问题变得更简单了。我找到了一些检查pangram的代码。它曾经是def pangram?('entent'),但我需要在其中插入一行,因此我尝试将其更改为def pangram?(行)。它似乎与我的编码风格不太吻合,并且不起作用。我尝试使用.contain('a'。.'z')检查一个pangram,但我认识的人尝试了该操作,但没有成功。谷歌也没有太大的帮助。
关于如何在if stmt中检查pangram的任何想法?
# To change this template, choose Tools | Templates
# and open the template in the editor
# This program reads a file line by line,
#separating lines by writing into certain text files.
#PPQ - Pangrams, Palindromes, and Quotes
class PPQ
def pangram?(line)
unused_letters = ('a'..'z').to_a - line.downcase.chars.to_a
unused_letters.empty?
end
def categorize
file_pangram = File.new('pangram.txt', 'w')
file_palindrome = File.new('palindrome.txt', 'w')
file_quotes = File.new('quotes.txt','w')
File.open('ruby1.txt','r') do |file|
while line = file.gets
if(line.reverse == line) …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Exercism.io 的 Python 轨道上解决这个问题,并且正在通过除混合大小写和标点符号测试之外的所有测试,只有小写字母、数字和下划线。有 10 个测试,我目前有四个不正确。这是我的代码。
def is_pangram(sentence):
alphabet = "abcdefghijklmnopqrstuvwxyz"
if alphabet in sentence:
return True
else:
return False
Run Code Online (Sandbox Code Playgroud)
下面是测试代码:
class PangramTest(unittest.TestCase):
def test_empty_sentence(self):
self.assertIs(is_pangram(""), False)
def test_perfect_lower_case(self):
self.assertIs(is_pangram("abcdefghijklmnopqrstuvwxyz"), True)
def test_only_lower_case(self):
self.assertIs(is_pangram("the quick brown fox jumps over the lazy dog"), True)
def test_missing_the_letter_x(self):
self.assertIs(
is_pangram("a quick movement of the enemy will jeopardize five gunboats"),
False,
)
def test_missing_the_letter_h(self):
self.assertIs(is_pangram("five boxing wizards jump quickly at it"), False)
def test_with_underscores(self):
self.assertIs(is_pangram("the_quick_brown_fox_jumps_over_the_lazy_dog"), True)
def test_with_numbers(self):
self.assertIs(
is_pangram("the 1 …Run Code Online (Sandbox Code Playgroud) import java.io.*;
import java.util.*;
public class Solution {
public static final int n = 26;
public int check(String arr) {
if (arr.length() < n) {
return -1;
}
for (char c = 'A'; c <= 'Z'; c++) {
if ((arr.indexOf(c) < 0) && (arr.indexOf((char)(c + 32)) < 0)) {
return -1;
}
}
return 1;
}
}
public static void main(String[] args) {
Scanner s1 = new Scanner(System.in);
String s = s1.next();
Solution obj = new Solution();
int d = …Run Code Online (Sandbox Code Playgroud)