题目描述 Description
‘DOS’被称为良序字串,因为它之中的字母是按ASCII码的顺序排列的,而‘DATE’则不是良序字串。
现要求给出一个N*N的字母方阵,从中选出给定长度M的良序字串。
注明:良序字串的每个字母必须在同一行中连续。
样例输入 Sample Input
4 3(N和M的值)
ABDE
CDDE
DEFK
CDKF
#include<cstdio>
#include<iostream>
using namespace std;
int s[25][25];
int main(){
int n,m;
scanf("%d %d
",&n,&m);//读入注意空格 和换行
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
scanf("%c",&s[i][j]);
scanf("
");
}
for(int i=1;i<=n;i++){//枚举行
for(int j=1;j<=n-m+1;j++){//枚举起点
int k;
for(k=1;k<m;k++)//判断ASCII码顺序
if(s[i][j+k-1]>=s[i][j+k]) break;
if(k>=m){
for(k=0;k<m;k++)
printf("%c",s[i][j+k]);
printf("
");
}
}
}
return 0;
}