AtCode ABC249 - B - Perfect String

AtCoder初学者比赛:编程学习 ABC比赛为初学者提供了一个良好的平台,让他们在编程竞赛中获得实践经验,并提高他们的编程技能。在编程领域,AtCoder Beginner Contest(ABC)是一个非常受欢迎的比赛,旨在帮助初学者提高他们的编程能力。在这篇文章中,我们将介绍ABC比赛的一些基本概念,并提供一些示例代码来帮助您更好地理解。让我们来看一个简单的示例,来帮助您了解ABC比赛的工作原理。希望本文能帮助您了解AtCoder初学者比赛(ABC)的基本概念,并为您的编程学习之旅提供一些指导。给定两个整数A和B,计算它们的和。 阅读详情

标签

  • 集合

题目地址

B - Perfect String

  • https://atcoder.jp/contests/abc249/tasks/abc249_b

问题描述

Problem Statement

Let us call a string consisting of uppercase and lowercase English alphabets a wonderful string if all of the following conditions are satisfied:

  • The string contains an uppercase English alphabet.
  • The string contains a lowercase English alphabet.
  • All characters in the string are pairwise distinct.

For example, AtCoder and Aa are wonderful strings, while atcoder and Perfect are not.

Given a string SS, determine if SS is a wonderful string.

Constraints

  • 1≤∣S∣≤100
  • S is a string consisting of uppercase and lowercase English alphabets.

Input

Input is given from Standard Input in the following format:

S

Output

If SS is a wonderful string, print Yes; otherwise, print No.


Sample Input 1

AtCoder

Sample Output 1

Yes

AtCoder is a wonderful string because it contains an uppercase English alphabet, a lowercase English alphabet, and all characters in the string are pairwise distinct.


Sample Input 2

Aa

Sample Output 2

Yes

Note that A and a are different characters. This string is a wonderful string.


Sample Input 3

atcoder

Sample Output 3

No

It is not a wonderful string because it does not contain an uppercase English alphabet.


Sample Input 4

Perfect

Sample Output 4

No

It is not a wonderful string because the 22-nd and the 55-th characters are the same.

题意

  • 完美字符串满足
    • 只包含英文
    • 至少包含一个大写和小写
    • 所有文字不重复

思路

  • 循环遍历,定义计数器,使用c++自带的函数统计大写和小写字母数量, 均不为0则满足条件;
    • 不足:这块定义一个bool变量更优
  • 循环时将每位字符存入set结构,因为set里的元素有互异性,所以最后只需要判断set的size是否和输入文字数一致即可。
    • 不足:空间复杂度上升,但处理简单,无脑就把程序写完

题解

小码匠

void coder_solution() {
    // 提升cin、cout效率
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    string s;
    cin >> s;
    set<char> a;
    int big = 0;
    int small = 0;
    for (int i = 0; i < s.size(); i++) {
        if (isupper(s[i])) {
            big++;
        } else if (islower(s[i])){
            small++;
        }
        a.insert(s[i]);
    }
    if (a.size() == s.size() && big > 0 && small > 0) {
        cout << "Yes";
    } else {
        cout << "No";
    }
}

参考题解

void second_solution() {
    // 提升cin、cout效率
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    string s;
    cin >> s;

    sort(s.begin(), s.end());
    for (int i = 0; i < s.length() - 1; i++) {
        if (s[i] == s[i + 1]) {
            cout << "No";
        }
    }

    bool a = false, b = false;
    for (auto &&c: s) {
        if (islower(c)) a = true;
        if (isupper(c)) b = true;
    }
    if (a && b) {
        cout << "Yes" << endl;
    }
}

官方题解

#include <bits/stdc++.h>
using namespace std;
int main() {
    // 提升cin、cout效率
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    string s;
    cin >> s;
    bool big = false, small = false;
    for (int i = 0; i < s.size(); i++) {
        if (isupper(s[i])) big = true;
        else small = true;
    }
    bool diff = true;
    for (int i = 0; i < s.size(); i++) {
        for (int j = i + 1; j < s.size(); j++) {
            if (s[i] == s[j]) diff = false;
        }
    }
    if (big && small && diff) {
        cout << "Yes" << endl;
    } else {
        cout << "No" << endl;
    }
}
  • 仔细分析官方题解,是有可优化空间的。
    • 第一:第8行、9行的判断中,如果bit和small都不为true,其实是没必要走后面循环处理;
    • 第二:第12行、13行用双指针来处理,更好。

待补知识点

  • 依然是函数这块,需要补充。当时看到这个题解,把代码复制到IDE中

    • 一:编译未通过,应该是自己知识水平不够,大神提交代码是没问题,功力不够;
    • 二:模板那块是自己的软肋,还没学习。
    template <class T> T scan() {
        T ret;
        std::cin >> ret;
        return ret;
    }
    
    void best_solution() {
        // 提升cin、cout效率
        ios::sync_with_stdio(false);
        cin.tie(0);
        cout.tie(0);
    
        const std::string s = scan<std::string>();
    
        if (s.size() != set(s.begin(), s.end()).size()) {
            std::cout << "No" << endl;
            return;
        }
        bool upp = false;
        bool low = false;
        for (const char c: s) {
            if ('A' <= c && c <= 'Z') {
                upp = true;
            }
            if ('a' <= c && c <= 'z') {
                low = true;
            }
        }
        std::cout << (upp && low ? "Yes" : "No") << endl;
    }
    
5个4000比特大状态置换算法的设计与分析 下面是 5 个概念性、实验性的 4000 位可逆置换设计。它们都保证是双射,但未经过密码分析,不可直接用于生产系统。风格分别覆盖:三维 SPN、Feistel、可逆元胞自动机、ARX、宽轨迹/Keccak 式结构。 这 5 个设计分别代表了 SPN、Feistel、元胞自动机、ARX、宽轨迹 Keccak 五种不同风格,覆盖了主流大状态置换的构造思路。再次强调:它们只是实验性概念,若要用于实际协议,必须经过严格安全性分析。 阅读详情

相关推荐

abc:AtCoder初学者竞赛(ABC)参加记录

竞プロ练习帐 竞技プログラミンミ练习记录です。 フォルダ构成

[ABC249B] Perfect String

[ABC249B] Perfect String。

mbjx2021的博客 536

从零到一:RJ71EN71 ModbusTCP配置的避坑指南与实战技巧

本文详细解析三菱RJ71EN71模块的ModbusTCP配置全流程,涵盖GX Works3参数设置、地址映射、通信调试等核心环节。针对工业环境中常见的IP冲突、软元件分配错误、通信超时等高频问题提供实战解决方案,帮助工程师快速构建高可靠性通信网络,避免项目延期风险。

zzz56的博客 331

零点工作室暑假集训(AtCoder--ABC249)

题意 :高桥和青木决定一起慢跑。高桥重复以下动作:“以B米每秒的速度行走A秒,然后休息C秒。”青木重复以下动作:“以E米每秒的速度行走D秒,然后休息F秒。”当从他们同时开始慢跑经过X秒后,谁会领先一步?为了确定高桥和青木谁在X秒后领先,我们需要根据他们行进的距离来计算。

weixin_73807663的博客 244

电路板功能测试系统-FCT for PCBA

电路板功能测试系统用于电路板组件(PCBA)的功能测试(FCT),满足自动化大批量生产的要求。  ● 用户根据自己需要定义测试步骤,灵活方便  ● 适合工业自动化大批量生产应用  ● 系统测试精度高,稳定可靠   一、电路板功能测试系统概述 电路板测试过程通常由多个步骤组成,每单个步骤中需要对多个物理量(电压、电流、电阻、频率、波形等)进行测试。在每个步骤测试时

6808

【天工Godwork精品教程】天工3.1.7安装教程(附Godwork完整版下载地址)

本文讲解天工3.1.7安装过程(附Godwork完整版网盘下载地址)。 一、天工3.1.7安装教程 1. 安装GodWork-AT 3.1.7 2. 安装GodWork-AT 3.1.7补丁 3. 安装GodWork-EOS-Setup-2017B-1231 4. 安装GodWork-EOS补丁 5. 运行godwokr软件 6. 生成ZC码 7. 输入ZC码 8. eos插

智慧空间实验室 5281

AtCoder ABC 249

A Jogging 没看清楚题 a不是移速 所以卡了十分钟 语法题 int main() { int a, b, c, d, e, f, x; cin >> a >> b >> c >> d >> e >> f >> x; // 速度 b 和 e int aa1 = b * a, bb1 = e * d; int res1 = aa1 * (x / (a + c)); int

DM010maker的博客 629

Unity 面试篇⚠️ | Unity性能优化好,山寨机都能跑~

Unity 面试篇⚠️ | Unity性能优化好,山寨机都能跑~

m0_58523831的博客 1万+

AtCode ABC249 - A - Jogging

标签 条件语句、数学 题目地址 A - Jogging https://atcoder.jp/contests/abc249/tasks/abc249_a 问题描述 Problem Statement Takahashi and Aoki decided to jog. Takahashi repeats the following: “walk at Bmeters a second for Aseconds and take a rest for Cseconds.” Aoki repeats

小码匠和老码农的博客 725

python爬取银行年报2

python爬取公司年报(巨潮资讯网)

bboysteed的博客 4730

038、OIS 光学防抖原理与调试:陀螺仪数据融合、Lens Shift OIS 的闭环控制

本文分享了OIS光学防抖系统的调试经验和关键技术要点。作者通过一个"呼吸感"Bug案例,揭示了陀螺仪数据融合和闭环控制的重要性。系统介绍了OIS的三个关键层次:传感器层(陀螺仪特性)、控制层(复合算法)和执行层(闭环控制)。重点讲解了陀螺仪数据融合的互补滤波实现、Lens Shift闭环控制的PID优化策略(包括积分抗饱和和微分滤波),以及前馈补偿的应用。最后总结了调试中的关键问题:数据同步、霍尔校准、温度补偿和性能评估方法,并给出实用建议:平衡算法复杂度与性能、预留带宽余量、重视产线校准等。文章强调OIS

sundong_81的博客 257

2025基础算法集(abc好题周更ing

作为一名堪堪入门的 Acmer,谨以此贴记录我算法入门年 202520252025 的点滴。英文题面的翻译由 DeepL 完成,样例输入输出较少,以记录向为主,若需查看原题请点击蓝色超链接部分后续应该会逐渐完善此贴,牛客、cf 等平台也可能慢慢加进来滴,现在关注以后就是老粉啦,更新有动力捏每三十个赞 or 收藏加更一套ABC!AtCoder Beginner Contest(ABC)作为入门级的算法竞赛,以其适中的难度和丰富的经典题型,成为了许多初学者的练兵场。

weixin_66385155的博客 1346

使用Simulink进行无刷电机霍尔传感器信号处理电路的仿真

位置检测:霍尔传感器可以检测转子的位置,这对于实现无刷电机的电子换向至关重要。提高效率:通过准确的位置信息,可以优化电机的工作状态,提高效率和性能。通过上述步骤,我们简要介绍了如何基于Simulink实现无刷电机霍尔传感器信号处理电路的仿真。

MHD0815的博客 430

AtcoderABC249场

具体地,可以将每个字符串看作一个二进制数,第 i 位为 1 表示选择第 i 个字符串,为 0 表示不选择。然后枚举所有可能的字符串选择情况,对于每种情况,统计其包含的字母数,最终取最大值即可。具体地,对于已选择的字符串,遍历其中的每个字母,将其对应的 sum 数组元素加 1。最后,遍历 sum 数组,统计出现次数为 K 的字母数 now,即为当前字符串选择情况下包含的字母数。选择若干个字符串,找到包含恰好 K 个已选择字符串中的一些字母的最大不同字母数。给定一个字符串S,判断它是否为美妙的字符串。

m0_73618658的博客 353

LVGL core theme主题管理(lv_theme.c)

如果打开宏,主题的初始化是在显示设备注册时完成的。整个themes的实现放在目录下面。这里一共有三套主题(basic、default和mono)可供选择或者参考。源码中默认对接的是 default 主题,所以在中,看到的是调用default主题的接口。也就是说,如果需要更换主题,把这里面的接口换掉就可以了。或者要重新做一套主题,参考这些实现修改也就可以了。虽说有三套主题,但逻辑流程是一样的。主要完成两个工作:构造lv_theme_t结构体和初始化默认样多备用(style_init函数内实现)。构造。....

Bigan(安)的博客 3410

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

「Atcoder」abc242 题解

A - T-shirt Code void solve() { int a, b, c, x; cin >> a >> b >> c >> x; if(x <= a) printf("%.12lf\n", 1.0); else if(x <= b) { double res=c; res /= (b-a); printf("%.12lf\n",res);

CodeTty的博客 1060

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Acwing周赛 1,2题+AtCoder Beginner Contest 1,2题

目录 Acwing A B ABC A Problem Statement Constraints Input Output Sample Input 1Copy Sample Output 1Copy Sample Input 2Copy Sample Output 2Copy Sample Input 3Copy Sample Output 3Copy B Problem Statement Constraints Input Output Sa...

小何同学~ 1231

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

AtCode ABC069 C-4-adjacent

标签 数学 题目地址 C - 4-adjacent https://atcoder.jp/contests/abc069/tasks/arc080_a?lang=en 问题描述 Problem Statement We have a sequence of length N, a = (a_1, a_2, …, a_N). Each ai_ii​ is a positive integer. Snuke’s objective is to permute the element in a so th

小码匠和老码农的博客 386

Atcode ABC105-C:Base -2 Number

C - Base -2 Number Time Limit: 2 sec / Memory Limit: 1024 MB Score :300300points Problem Statement Given an integerNN, find the base−2−2representation ofNN. Here,SSis the...

weixin_34055910的博客 293

AtCoder ABC 239题解(A ~ E)

AtCoder ABC 239 A Horizon(语法 + 数学) sqrt(a∗b)==sqrt(a)∗sqrt(b) sqrt(a * b) == sqrt(a) * sqrt(b) sqrt(a∗b)==sqrt(a)∗sqrt(b) int main() { LL n; scanf("%lld", &n); double res = sqrt(n) * sqrt(12800000 + n);//防溢出 printf("%.2f\n", res); r

DM010maker的博客 5129

Atcode - ABC 221 - C - Select Mul

函数分析 stoi() & atoi() int stoi (const string& str, size_t* idx = 0, int base = 10); int stoi (const wstring& str, size_t* idx = 0, int base = 10); Convert string to integer Parses str interpreting its content as an integral number of the specif

weixin_51942493的博客 719

Atcode - ABC 212- D - Querying Multiset

D - Querying Multiset Time Limit: 2 sec / Memory Limit: 1024 MB Score : 400 points Problem Statement Takahashi has many balls, on which nothing is written, and one bag. Initially, the bag is empty. Takahashi will do Q operations, each of which is of one o

weixin_51942493的博客 283

AtCoder ABC246

文章目录[C - Coupon](https://atcoder.jp/contests/abc246/tasks/abc246_c)[D - 2-variable Function](https://atcoder.jp/contests/abc246/tasks/abc246_d)[E - Bishop 2](https://atcoder.jp/contests/abc246/tasks/abc246_e)[F - typewriter](https://atcoder.jp/contests/abc

weixin_44042643的博客 4269

AtCoder Beginner Contest 249题解(E,F)

AtCoder Beginner Contest 249题解(E,F) E - RLE 题目大意:有一个长度为 N 的只含有小写字母字符串 S ,将S中连续相同的字母用计数法表示,如 aaa -> a3, aaabbbcc -> a3b3c2。现在要求用计数法表示后长度严格小于原来长度的 S 数量,要求对P取模。 分析:考虑动态规划: ​ 设 f[ i ] [ j ]为 长度为 i 的字符串 用计数法表示后长度为 j 的数量 。 ​ sum[ i ] [ j ] 为法 f[ i ] [

finish_work的博客 2565

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 167

【算法拾光】链表 哈希表|K个一组翻转链表 + 两数之和

K个一组翻转链表需分段反转,借助哑节点与前驱指针维护连接,避免断链;两数之和利用哈希表实现O(1)查找,空间换时间,高效定位目标组合。前者考察链表指针操作,后者聚焦映射关系构建,均为面试高频题。

wuqingyigexiaoba的博客 269
上一篇: 解读小孩学编程
下一篇: AtCode ABC249 - A - Jogging
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小码匠和老码农

喜欢作者

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值