首页 > 编程语言 >算法学习记录(模拟枚举贪心题单):[NOIP2007]字符串的展开(未AC,明天找bug)

算法学习记录(模拟枚举贪心题单):[NOIP2007]字符串的展开(未AC,明天找bug)

时间:2023-05-21 19:44:13浏览次数:47  
标签:p2 字符 AC NOIP2007 填充 p3 p1 str bug

题目链接

https://ac.nowcoder.com/acm/contest/20960/1001

解题思路

很简单的模拟题,以后写模拟要先分两大类,元素在某个集合中存不存在的问题,再细分。

未AC代码

#include <iostream>
#include <string>

using namespace std;

// 碰到'-'的展开条件:
//		1.减号两侧同为小写字母或数字,是ASKII的顺序,右边字符 > 左边字符
// 参数介绍:
//		p1:
//			p1 = 1:对于字符子串填充小写字母
//			p1 = 2:填充大写字母
//			p1 = 3:等价字母数量的 相同 *
//		p2:
//			当p2 = k,填充k个重复字,两侧字符不变
//
//		p3:
//			p3 = 1:维持原有顺序
//			p3 = 2:采用逆序输出
//			(不包括两端字符)
//		
//	如果'-'右侧字符是左侧字符后继,只删除中间减号

int p1, p2, p3;


string generate(string& str)
{
    string res;
    // 处理 p2(重复)
    
    for (char c = str[0]; c <= str[str.size() - 1]; ++ c)
        for (int i = 0; i < p2; ++ i)   
            res.push_back(c);

    if (p3 == 1);    // 顺序
    else if (p3 == 2)        // 逆序
            for (int i = 0, j = res.size() - 1; i < j; ++ i, -- j) 
            swap(res[i],res[j]);

    if (p1 == 3)        // 判 '*',
        for (int i = 0; i < res.size(); ++ i)
        res[i] = '*';
    
    if (isdigit(res[0])) return res;    // 如果是数字下面的可以不用看了

    // if (p1 == 1);       // 小写字母
    if (p1 == 2)           // 大写字母
        for (int i = 0; i < res.size(); ++ i)
        res[i] -= 32;
    
    return res;
}

int main()
{
    string str;
    cin >> p1 >> p2 >> p3 >> str;

    
    // 展开要填充的字符,注意后继
    for (int i = 0; i < str.size(); ++ i)
    {      
        if (str[i] == '-')
        {
            if (str[i + 1] - str[i - 1] == 1);        // 不输出'-'
            else if (str[i + 1] - str[i - 1] <= 0) cout << str[i];     // '-'不展开   
            else
            {
                char st, ed; 
                string tmp;
                st = str[i - 1], ed = str[i + 1];
                while (st < ed - 1) tmp.push_back( ++ st);      // 取出的是小写字母
                string res = generate(tmp);
                cout << res;

            }
        }
        else cout << str[i];
    }
    
    return 0;
}

标签:p2,字符,AC,NOIP2007,填充,p3,p1,str,bug
From: https://www.cnblogs.com/ClockParadox43/p/17419041.html

相关文章

  • Ribbon默认负载均衡规则替换为NacosRule
    近期博主在参与一个SpringCloud搭建,版本为Hoxton.SR12,服务注册发现组件为Nacos的老项目时,发现项目负载均衡组件Ribbon的负载均衡规则在某些场景下不够完美,比如新版本上线,需要重启服务。因此写了这边文章与大家分享。在微服务架构中,负载均衡是实现高可用性、高性能和可......
  • oracle中SCN详细解析
    在Oracle数据库中,SCN表示数据库中状态变化的时间点,是一个连续唯一的数字标识符。SCN的类型比较多,本文将会详细介绍控制文件中的SCN、检查点(SCNCheckpoint)、数据文件的起始SCN和终止SCN、归档日志的SCN以及在线日志的SCN,同时描述这些不同类型的SCN之间的关系。控制文件中的SCN在O......
  • 第二十一篇——MACD与KDJ合二为一指标公式怎么编写?(从零起步编写通达信指标公式系列)
    在编写MACD与KDJ合二为一指标公式之前,先来了解一下技术指标共振。常见的技术指标共振有三种类型:单指标多周期共振、单指标多级别共振、多技术指标共振,今天主要介绍第三种。 多技术指标共振是指多个技术指标显示出相似的趋势或信号,这通常被视为市场趋势或价格变化的信号,并表......
  • php+phpstorm+xdebug配置
    简介原文链接:https://culturesun.site/index.php/archives/675.html因为博客是php的,所以无奈接触了php开发,虽然之前也学习过php语法。搞开发是离不开debug。最初从网上找到相关教程配置成功了,后来升级php,浏览器崩了搞的debug不行,再配置怎么也不成功,准确的来说,网上的辣鸡贴子太......
  • mac软件最佳资源下载站「macw」
    macw是一个专业的Mac苹果电脑软件下载网站。海量Mac软件,Mac教程技巧,壁纸,字体,模板,插件视频等资源集一身。有众多业界所推崇的主流软件,还有许多你不曾了解的小众精品软件。完美破解,人工测试,及时更新。更多详情:https://www.macw.com/?id=ODA2NCZfJjI3LjE4Ni4xMjUuMTE2......
  • Waves 14 Complete Mac (Waves混音效果全套插件)
    Waves14Complete是一款全功能的音频处理软件套装,包含超过140个插件,可用于各种音频处理和音乐制作任务。这个套装包含了多种不同类型的插件,包括均衡器、压缩器、混响、延迟、合成器、调制器等等。Waves14Complete还提供了许多专业级功能,如自适应限制、自动启动时间校准、360度......
  • 【记录一下】修正lazarus fr报表控件在龙芯电脑不能使用QRcode的Bug
    近日海南朋友使用fr控件时发现不能在报表插入QRCode和PDF417等二维码,经跟踪发现只需将frxBarcodePDF417.pas第1592行将A:=TInt(ERROR_LEVEL[errorLevel]);改为:A:=@(ERROR_LEVEL[errorLevel]);就可以正常插入QRCode等二维码了,如果你使用过程也遇到同样问题可参考一下......
  • Activity中使用Menu
    手机毕竟和电脑不同,它的屏幕空间是十分有限的,如果你的Activity中有大量的菜单需要显示,可以使用Menu来实现。首先在res资源目录下新建一个menu文件夹,并在该文件夹下新加一个文件main.xml 在main.xml中定义菜单选项资源<?xmlversion="1.0"encoding="utf-8"?><menuxmlns:a......
  • Stack Overflow 2017 开发者调查报告(程序员必看)
    最近,StackOverflow发布了一篇2017开发者调查报告,此次在全球有超过64,000名开发者参与调查,分别对其技能、工具、学习趋势等数据进行了统计,比较遗憾的是中国参与调查的开发者很少,只有大概300人左右,所以有些调查结果可能跟中国环境不太相符,不过毫无疑问,这几乎代表了全球技术的......
  • 中文环境下使用 huggingface 模型替换 OpenAI的Embedding 接口
    OpenAI的文本嵌入衡量文本字符串的相关性。嵌入通常用于:搜索(其中结果按与查询字符串的相关性排名)聚类(其中文本字符串按相似性分组)推荐(推荐具有相关文本字符串的项目)异常检测(识别出相关性不大的异常值)多样性测量(分析相似性分布)分类(其中文本字符串按其最相似的标签分类)嵌入是浮......