题目: 如果一个单词中的字母都是以字母表的顺序出现,那么这个单词称为“abecedarian”.比如下面这些字母
abdest acknow acorsy adempt adiplsy
编写一个名为isAbecedrian的方法,实现对单词的检测。
java代码:
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).程序里的代码不考虑前一个字母和后一个字母相等的情况。