这题我第一遍写是对的,现在写竟然错了,经过仔细研究,我发现是在遍历list的时候出现问题,我一开始没有写当k==0时退出,我没有意识到会出现k==0这种情况,加上去以后就对了
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int m=scanner.nextInt();
int k=scanner.nextInt();
char c[][]=new char[n][m];
for (int i = 0; i < c.length; i++) {
String string=scanner.next();
c[i]=string.toCharArray();
}
ArrayList<Integer> list=new ArrayList<>();
for (int j = 0; j < c[0].length; j++) {
int len=0;
for (int i = 0; i < c.length; i++) {
if(c[i][j]=='o')len++;
if(c[i][j]!='o') {
if(len>=2) {
list.add(len);
}
len=0;
}
if(i==n-1) {
if(len>=2) {
list.add(len);
}
len=0;
}
}
}
Collections.sort(list,Collections.reverseOrder());
int count=0;
for(Integer x:list) {
if(k==0)break;
if(x>k) {
count+=k-1;
break;
}else {
count+=x-1;
k-=x;
}
}
System.out.println(count);
}
}



京公网安备 11010502036488号