#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int t;
cin>>t;
while(t--){
long int n,k=0,max; string str;
cin>>n;
cin>>str;
set<pair<long int,long int>> v;
cout<<"hi";
for(long int i=0; i<n; i++){
long int l,h=-1;
l=i;
for(long int j=n-1; j>i; j--){
if(str[j]==str[i]&&h==-1) h=j;
else if(str[j]==str[i]&&h!=-1&&l==i) l=j;
}
if(h!=-1) v.insert(make_pair(l,h));
}
for (auto x : v) {
cout << "(" << x.first << ", "
<< x.second << ")"
<< " ";
}
}
}
以上是我的初始代码。这样可以正确编译并显示输出。
k += (*v.begin()).first;
cout<<"k = "<<k<<"\n";
max = (*v.begin()).second;
for (auto x : v) {if(x.second>max) max = x.second;}
k += n-1-max;
set<pair<long int,long int>>::iterator prev = v.begin(),it;
while(it != v.end()) {
if(it==v.begin()) continue;
long int mid = (*it).first-(*prev).second-1;
if(mid>0) k += mid;
prev = it;
}
cout<<"The final k = "<<k<<"\n";
但是当我添加此代码段时。该程序已编译,但输入输入后未显示输出。
输入格式:
1(无测试用例)
10(您要输入的字符串的大小)
xxxxabbbba(输入您的字符串)