如果一个字母中的字母不只出现一次,则该字符串为Heterogram。一个例子如下:
String = the big dwarf only jumps
此字符串是一个Heterogram,因为字符串中的每个字母仅出现一次。
演示该程序的程序如下。
public class Example {
public static void main (String[] args) {
String str = "mango";
int n = str.length();
int alphaList[] = new int[26];
int flag = 1;
System.out.println("The string is: " + str);
for (int i = 0; i < n; i++) {
if (str.charAt(i) != ' ') {
if (alphaList[str.charAt(i) - 'a'] == 0) {
alphaList[str.charAt(i) - 'a'] = 1;
}else {
flag = 0;
break;
}
}
}
if(flag == 1)
System.out.println("The above string is a Heterogram");
else
System.out.println("The above string is not a Heterogram");
}
}
输出结果
The string is: mango
The above string is a Heterogram
现在让我们了解上面的程序。
首先,显示字符串。然后使用for循环检查字符串是否为异义词。对于字符串的每个字母,如果它是第一次出现,则其在alphaList []中的对应位置将更新为1。如果第二次出现相同的字母,则将标志设置为0,否则将使用break退出循环。演示此操作的代码段如下所示。
System.out.println("The string is: " + str);
for (int i = 0; i < n; i++) {
if (str.charAt(i) != ' ') {
if (alphaList[str.charAt(i) - 'a'] == 0) {
alphaList[str.charAt(i) - 'a'] = 1;
}else {
flag = 0;
break;
}
}
}
如果flag为1,则字符串为Heterogram,并显示出来。如果flag为0,则字符串不是Heterogram,而是显示出来。演示此操作的代码段如下所示。
if(flag == 1)
System.out.println("The above string is a Heterogram");
else
System.out.println("The above string is not a Heterogram");