Java 中的 Pangram 程序

2025年9月2日 | 阅读 5 分钟

在本节中,我们将讨论什么是回文字符串。我们还将创建一个Java程序来检查给定的字符串是否为回文串。

什么是回文字符串?

如果字符串包含从 a 到 z 或 A 到 Z 的所有字母,则该字符串称为回文串,忽略大小写。

回文字符串或句子的示例

以下字符串/句子是回文串

  • Pack my box with five dozen liquor jugs.
  • The quick brown fox jumps over the lazy dog.
  • My ex pub quiz crowd gave joyful thanks.
  • Cozy sphinx waves quart jug of bad milk.
  • Fix problem quickly with galvanized jets.

算法

  1. 创建一个哈希表(布尔向量)。用于标记字符串中存在的字符。
  2. 遍历给定字符串中的所有字符。
  3. 如果找到大写字母,则减去 'A' 来查找索引。
  4. 如果找到小写字母,则减去 'a' 来查找索引。
  5. 将向量中的值标记为 true(找到字符)。
  6. 如果任何字符未被标记(找不到字符),则返回 false。
  7. 否则,返回 true。

回文 Java 程序

为了查找回文字符串,有两种方法:

  • 使用频率数组
  • 使用遍历

使用频率数组

  1. 将每个字母转换为小写或大写。
  2. 创建一个数组来标记给定字符串中每个字母(从 a 到 z)的频率。
  3. 遍历频率数组。如果存在任何字母未出现在频率数组中,则打印“字符串不是回文串”,否则打印“字符串是回文串”

让我们在 Java 程序中实现上述方法。

PangramStringExample1.java

输出

The given string is a pangram string.

使用遍历

在此方法中,首先将所有字母转换为小写字母。然后,遍历 a 到 z 的每个字母。检查给定字符串是否包含所有字母(a 到 z),如果存在,则打印字符串是回文串,否则打印字符串不是回文串。

让我们在 Java 程序中实现上述方法。

PangramStringExample2.java

输出

Pangram String

让我们看看另一种方法。

在此方法中,我们创建了一个名为 mark[] 的布尔类型数组。迭代字符串中的所有字母并标记每个访问过的字母。假设在字符串中找到了 a 或 A,则在索引 0 处标记它。其他字母以此类推。

PangramStringExample3.java

输出

Fix problem quickly with galvanized jets is a pangram string.

让我们看看相同的另一个逻辑。

PangramStringExample4.java

输出

Enter the string: pack my box with five dozen liquor jugs
The string is a pangram string.

复杂度

时间复杂度:时间复杂度为O(n),其中 n 是字符串的长度。

空间复杂度:空间复杂度为O(1),因为它不需要额外的空间。