注意注意:不考虑左上的情况,因为题目给的样例没有
public static int is1(char ch[][],int m,int n){
int ans=0;
for (int i=0;i<m;i++){//起始点在哪
for (int j=0;j<n;j++){
int add=1;
while(j+add<n){
if(ch[i][j]<ch[i][j+add]) ans++; //横
add++;
}
add=1;//置为1
while(i+add<m){
if(ch[i][j]<ch[i+add][j]) ans++; //列递增
add++;
}
add=1;
while (i+add<m&&j+add<n){//判断范围
if (ch[i][j]<ch[i+add][j+add]) ans++; //右下
add++;
}
add =1;
while(i-add>=0&&j+add<n){
if (ch[i][j]<ch[i-add][j+add]) ans++; //右上
add++;
}
add=1;
while(i+add<m&&j-add>=0){
if (ch[i][j]<ch[i+add][j-add]) ans++; //左下
add++;
}
}
}
return ans;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int m=30,n=50;
char ch[][] = new char[m][n];
for(int i=0;i<m;i++){
char st[] = scan.nextLine().toCharArray();
ch[i] = st;
}
System.out.println(is1(ch,m,n));
//在此输入您的代码...
scan.close();
//System.out.println("52800");
}