一个仅包含a和b的数组,找出连续a的最大长度。
public int test(String[] s){
int max = 0;
int local = 0;
for(int i=0; i<s.length; i++){
if(s[i] == 'a'){
local++; //如果字符是a,则字符串长度增加
} else {
local = 0; //如果字符不是a,则将字符串长度置0
}
//如果本次连续字符串长度大于前一个,则本次的就为最大
if(local > max){
max = local;
}
}
return max;
}
有一个仅包含数字的数组,例如:{1,3,6},给最后一位加1,结果为{1,3,7},若是{9,9,9},结果将为{1,0,0,0}
public int[] test(int[] a){
//如果输入字符串长度为零,则直接返回
if(a.length == 0){
return a;
}
//从后向前循环
for(int i=a.length-1; i>-1; i--){
a[i]++;
//如果该位数字加1后结果是10,则需要进位
if(a[i] == 10){
a[i] = 0;
//如果是最高位加1的结果是10,则需要增大数组
if(i == 0){
int[] b = new int[a.length+1];
b[0] = 1;
//新数组首位是1,其他位全为0
for(int j=1; j<b.length; j++){
b[j] = 0;
}
a = b; //将新数组赋值给输入数组
} else {
break;
}
}
}
return a;
}