题解 | #字符串的展开#

字符串的展开

https://ac.nowcoder.com/acm/problem/16644

过了70

#include <iostream>
#include <algorithm>
using namespace std;
int p1,p2,p3;
string s;

bool check(char s1,char s2){
    if(s1 >= '0' && s2 <= '9' && s1 < s2) return true;
    if(s1 >= 'a' && s2 <= 'z' && s1 < s2) return true;
    return false;
}

int main(){
    cin >> p1 >> p2 >> p3;
    cin >> s;
    for(int i = 0;i < s.size();i++){
        if(s[i]=='-' && i!=s.size()-1 &&check(s[i-1],s[i+1])){
            string tmp;
            //不需要展开
            if(s[i-1]+1==s[i+1]) {
                s.erase(i,1);
                i--;
            }
            //需要展开
            else {
                //填充小写
                if(p1==1){
                    for(int k = 1;k < s[i+1]-s[i-1];k++){
                        for(int j = 0;j < p2;j++) tmp+=s[i-1]+k;
                    }
                    if(p3==2) reverse(tmp.begin(),tmp.end());
                    s.replace(i,1,tmp);
                }
                 //填充大写
                else if(p1==2){
                    for(int k = 1;k < s[i+1]-s[i-1];k++){
                        for(int j = 0;j < p2;j++) tmp+=s[i-1]+k-65;
                    }
                    if(p3==2) reverse(tmp.begin(),tmp.end());
                    s.replace(i,1,tmp);
                }
                else{
                    //填充*
                    for(int k = 1;k < s[i+1]-s[i-1];k++){
                        for(int j = 0;j < p2;j++) tmp+='*';
                    }
                    s.replace(i,1,tmp);
                }
            }
        }
    }
    cout << s;
}
全部评论

相关推荐

在下uptown:山东的哥们得好好回答 第一问题,专业技能太少了,现在写的大部分都是模型迭代过渡期的技术栈,说白了今天用明天可能就不用,多补一些看家的本事 第二个问题,项目偏学术学习体现不出工程能力,deepresearch核心在于模型自我反馈自我纠正,没体现出来,RAG本身在落地应用上就是个伪命题。 再有就是,有实习经历可以弥补学历不足,建议放到学历下面,别人筛简历可能第一眼觉得学校不过关,但第二眼有实习经历,就给你面试了,藏到后面可能就没有第二眼了
点赞 评论 收藏
分享
饼子吃到撑:学院本是这样的,找工作拼运气,你技术再好人家筛选学历照样沉入海底,海投就行了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务