package CodeCheck;
import java.util.Arrays;
// 26进制减法
public class CodeCheck{
// 方法一:
public boolean checkCodeIncrease(String s1, String s2) {
// s1加1生成s3判断s2==s3 或者 s2-s1差值是否是1
char[] chars1 = s1.toCharArray();
int index = chars1.length-1;
char[] chars3 = Arrays.copyOf(chars1, index+1);
int carry = 0;
int curCharNum = (int)chars1[index];
// A:97 - Z:122
while(index >=0) {
if(curCharNum == 122) {
chars3[index] = 'A';
curCharNum = (int)chars1[index];
} else {
chars3[index] = (char)((int)chars1[index]+1);
return new String(chars3).equals(s2);
}
index--;
}
// while结束还没退出,说明最后是全Z进位,头部追加一个A
return "A".concat(new String(chars3)).equals(s2);
}
// 字符串转26进制数字,可能问题:字符过长容易超出数字最大边界
public int str2Num(String str) {
int res = 0;
int multiple = 1;
for(int i = str.length() - 1; i >= 0; i--) {
int curNum = str.charAt(i) - 'A' + 1;
res += curNum * multiple;
multiple *= 26;
}
return res;
}
// 方法二:
public boolean limitCheck(String s1, String s2) {
return str2Num(s2) - str2Num(s1) == 1;
}
public static void main(String[] args) {
// CodeCheck checker = new CodeCheck();
// boolean r1 = checker.limitCheck("ZZZZZZZZZZZZZZZ", "AAAAAAAAAAAAAAAA");
// System.out.println("r1 : " + r1 );
r1 = checker.limitCheck("AA", "AB");
System.out.println("r1 : " + r1 );
}
}
字符串升序判断-java
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 问题描述: 比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是 大写字母。 样例 给出...
- (String) 给定一个字符串,判断该字符串张是否包含某个字串。如果包含,求出字串的所有出现位置。如:"abcd...
- 题目:有两个字符串由不同的字母组成,一长一短,长的为A短的为B。设计一个算法,如果所有在B中出现的字符都在A中出现...
- 转自:http://www.cnblogs.com/qiuting/p/5373571.htmlJava空字符串与...