求大佬观察逻辑错误,30分
查看原帖
求大佬观察逻辑错误,30分
569914
Kvj123456楼主2024/7/25 20:27
#include<bits/stdc++.h>
using namespace std;
string str;
int k;
int main() {
	cin>>str>>k;
	int n=k;
	for(int i=0;i<str.size()-1;i++){
		if(str[i]>str[i+1]){
			str.erase(i,1);
			n--;
			i--;
		}
		if(n==0) break;
	}
	while(n--) str.erase(str.size()-1,1);
	cout<<str;
	return 0;
}

和题解基本类似,错误在于i--应换成break然后该循环重来,我很想知道为什么不能这样做,虽然知道了10%?

2024/7/25 20:27
加载中...