版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zh1204190329/article/details/82533923
在这里,我是用的是比较暴力的方法,通过100%。
#include <iostream>
#include <stdio.h>
#include <string>
#include <vector>
using namespace std;
void abb(string &str)
{
string s;
int len = str.size();
int pos = 0;
int cnt = 0;
// s.push_back(str[0]);
for (int i = 0; i < len; i++)
{
pos = i + 1;
if(str[pos] - str[i] == 1)
{
cnt++;
}
else
{
if (cnt >= 3)
{
char a = '-';
s.push_back(str[i-cnt]);
s.push_back(a);
s.push_back(str[i]);
cnt = 0;
}
else
{
if (cnt > 0)
{
for(int j = cnt; j > 0; j--)
{
s.push_back(str[i-j]);
}
}
s.push_back(str[i]);
cnt = 0;
}
}
}
for (int i = 0; i < s.size(); i++)
cout << s[i];
cout << endl;
}
int main()
{
int n;
cin >> n;
vector<string> str;
string tmp;
for(int i = 0; i < n; i++)
{
cin >> tmp;
str.push_back(tmp);
}
for (int i = 0; i < n; i++)
{
abb(str[i]);
}
return 0;
}