文章
6
粉丝
83
获赞
100
访问
6.8k
这道题描述的不是很好,我看了几遍也没理解意思。看到上一位朋友写的题解后才明白这题问的是什么。
首先A B C D......这些字母按从小到大理解,A最小,Z最大。
小的在前即可扩展,例如AC 可以扩展为AAC,而CA中C比A大,不能扩展。
求给定字符串所能扩展的极限。
以下是我的解法:
把字符串按相同字母分开,存入数组,例如AC分为A,C存入数组。
遍历数组,若下一个数组元素字母大,则当前字母可拓展。即A下一个为C,A小于C,则A可拓展。
故最终代码如下。
#include <iostream>
#include "algorithm"
#include "string"
#include<vector>
#include <unordered_map>
using namespace std;
int main(){
string s;
cin>>s;
string ans = "";
vector<string> v;int j = 0;
for(int i=0;i<s.size();i++){
if(s[i]!=s[j]){
v.push_back(s.substr(j,i-j));
j = i;
}
}
v.push_back(s.substr(j,s.size()-j));
for(int i = 0;i<v.size()-1;i++){
if(v[i][0]<v[i+1][0]){
ans+=v[i];
ans+=v[i];
}
else{
ans+=v[i];
}
}
ans+=v[v.size()-1];
cout<<ans...
登录后发布评论
暂无评论,来抢沙发