字母顺序检测

题目: 如果一个单词中的字母都是以字母表的顺序出现,那么这个单词称为“abecedarian”.比如下面这些字母

abdest acknow acorsy adempt adiplsy

编写一个名为isAbecedrian的方法,实现对单词的检测。

java代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package isAbecedarian;

import recurse.recurse;

public class isAbecedarian {

public static void main(String[] args) {
String s1 = "abcdefg";
String s2 = "edfeasac";

System.out.println(isAbecedarian(s1));
System.out.println(isAbecedarian(s2));

}

public static boolean isAbecedarian(String s) {
int n = s.length();
int flag = 1;
for (int i=0; i<n-1;i++) {
if (s.charAt(i)>=s.charAt(i+1)) {
flag = 0;
break;
}
}
if (flag==1) {
return true;
}else {
return false;
}
}

}

  • 1、这算是一种排序的方法,即单词从小到大排列,因此检测的方法很简单,只需保证每一个字母都排在其后一个字母的前面。
  • 2、因此,可设置一个标志位,但检测到前一个字母的字母顺序不在后一个字母的前面时,标志位变化。最后对标志位进行检测,以输出结果。
  • 3、需要说明的是,程序是根据一个字母的ASCLL码值来比较的,因此a(97)<z(122).程序里的代码不考虑前一个字母和后一个字母相等的情况。