文章
6
粉丝
83
获赞
90
访问
5.1k
这道题描述的不是很好,我看了几遍也没理解意思。看到上一位朋友写的题解后才明白这题问的是什么。
首先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...
登录后发布评论
暂无评论,来抢沙发