敢不敢挑战这道《简单题》

简介: 这道题的题目和代码都很长,但是细节满满,值得一写

这道题的题目和代码都很长,但是细节满满,值得一写

1001-[NOIP2007]字符串的展开_2021秋季算法入门班第一章习题:模拟、枚举、贪心 (nowcoder.com)

1.1.png

1.2.png 代码

🚥🚥🚥🚥🚥🚥

🏳️‍🌈🏳️‍🌈🏳️‍🌈代码的意思是边输入边输出

#include<stdio.h>
#include<string.h>
int type(char ch){//这一部分很妙
    if(ch>='a' && ch<='z') return 1;
    if(ch>='A' && ch<='Z') return 2;
    if(ch>='0' && ch<='9') return 3;
    return 4;
}
int main(){
    int p1,p2,p3;
    scanf("%d %d %d",&p1,&p2,&p3);
    char str[105];
    scanf("%s",str);
    int len = strlen(str);
    for(int i = 0;i<len;i++){
        if(str[i+1] == '-' && str[i+2]>str[i] &&(type(str[i+2])==type(str[i]))){
            putchar(str[i]);
            if(p3 == 1){
                for(int j=str[i]+1;j<str[i+2];j++){
                    for(int k = 0;k<p2;k++){
                        if(p1 == 1){
                            if(type(j) == 2) putchar(j+32);
                            else putchar(j);
                        }else if(p1==2){
                            if(type(j) == 1) putchar(j-32);
                            else putchar(j);
                        }else{
                            putchar('*');
                        }
                    }
                }
            }else{
                for(int j=str[i+2]-1;j>str[i];j--){
                     for(int k = 0;k<p2;k++){
                        if(p1 == 1){
                            if(type(j) == 2) putchar(j+32);
                            else putchar(j);
                        }else if(p1==2){
                            if(type(j) == 1) putchar(j-32);
                            else putchar(j);
                        }else{
                            putchar('*');
                        }
                    }
                }
            }
            i+=1;
        }
        else//千万别忘了这一行代码
        putchar(str[i]);
    }
    return 0;
}

Code over!

相关文章
|
机器学习/深度学习 存储 人工智能
【c++百日刷题计划】 ———— DAY12,奋战百天,带你熟练掌握基本算法
【c++百日刷题计划】 ———— DAY12,奋战百天,带你熟练掌握基本算法
212 0
|
存储 算法 C++
【c++百日刷题计划】 ———— DAY13,奋战百天,带你熟练掌握基本算法
【c++百日刷题计划】 ———— DAY13,奋战百天,带你熟练掌握基本算法
353 0
|
7月前
|
安全 Java 索引
如何克服Leetcode做题的困境
如何克服Leetcode做题的困境
48 0
|
算法 Android开发 Kotlin
LeetCode 周赛上分之旅 #42 当 LeetCode 考树上倍增,出题的趋势在变化吗
学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度也更复杂。在这个专栏里,小彭与你分享每场 LeetCode 周赛的解题报告,一起体会上分之旅。
117 0
LeetCode 周赛上分之旅 #42 当 LeetCode 考树上倍增,出题的趋势在变化吗
|
机器学习/深度学习 算法 C++
【c++百日刷题计划】 ———— DAY8,奋战百天,带你熟练掌握基本算法
【c++百日刷题计划】 ———— DAY8,奋战百天,带你熟练掌握基本算法
227 0
|
人工智能 算法 C++
【每日算法Day 88】超越妹妹教你如何做这道排序题
【每日算法Day 88】超越妹妹教你如何做这道排序题
四道好题分享(看似简单,但是棘手)
四道好题分享(看似简单,但是棘手)
105 0
|
算法 程序员
【算法集训专题攻克篇】第二十篇之二叉搜索树
【算法集训专题攻克篇】第二十篇之二叉搜索树
【算法集训专题攻克篇】第二十篇之二叉搜索树
【蓝桥真题3】蓝桥改革变难,想进国赛这些能力你可缺一不可(下)
【蓝桥真题3】蓝桥改革变难,想进国赛这些能力你可缺一不可
234 0
【蓝桥真题3】蓝桥改革变难,想进国赛这些能力你可缺一不可(下)
|
大数据 程序员 云计算
世界程序员最难的题目,做不好你就是杀人凶手【云计算 大数据 开卷题目】
这道题目没有任何数据给你,但你可以去找估计数字,欢迎有志程序员做这到题目,这是一个开卷题目,你考虑的越多对象和属性程序会越复杂,你可以纯属娱乐。