首页 > 其他分享 >洛谷 4道水题 题解(字符串入门)

洛谷 4道水题 题解(字符串入门)

时间:2024-08-11 14:52:39浏览次数:17  
标签:字符 洛谷 水题 输出 int 题解 字符串 DNA 输入

题目目录:

No.1 B2109 统计数字字符个数 

No.2 B2110 找第一个只出现一次的字符 

No.3 B2111 基因相关性

No.4 B2113 输出亲朋字符串

OK开始正文!

第一题:B2109 统计数字字符个数

题目描述

输入一行字符,统计出其中数字字符的个数。

输入格式

一行字符串,总长度不超过 255。

输出格式

输出为 1 行,输出字符串里面数字字符的个数。

输入输出样例

输入 #1

Today is 2021-03-27

输出 #1复制

8

思路:

简单到爆炸,遍历一下,统计数字个数,然后输出

AC代码:

#include<bits/stdc++.h>
using namespace std;
signed main()
{
    string s;
    getline(cin,s);
    int cnt=0;
    for(int i=0;i<s.size();i++)
    {
        cnt+=s[i]>='0'&&s[i]<='9';
    }
    cout<<cnt;
    return 0;
}

第二题:B2110 找第一个只出现一次的字符

题目描述

给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出 no

输入格式

一个字符串,长度小于 1100。

输出格式

输出第一个仅出现一次的字符,若没有则输出 no

输入输出样例

输入 #1

abcabd

输出 #1

c

输入 #2

aabbcc

输出 #2

no

思路:

每个字母存一下出现次数,然后遍历一下次数,如果有1直接输出,return 0,最后输出no

AC代码:

#include<bits/stdc++.h>
using namespace std;
int cnt[30];
signed main()
{
    string s;
    cin >> s;
    for(int i=0;i<s.size();i++)
    {
        cnt[s[i]-'a']++;
    }
    for(int i=0;i<s.size();i++)
    {
        if(cnt[s[i]-'a']==1)
        {
            cout<<s[i];
            return 0;
        }
    }
    cout<<"no";
    return 0;
}

第三题:B2111 基因相关性

题目描述

为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的 DNA 进行比对,以判断该比对的 DNA 是否具有相关性。

现比对两条长度相同的 DNA 序列。首先定义两条 DNA 序列相同位置的碱基为一个碱基对,如果一个碱基对中的两个碱基相同的话,则称为相同碱基对。接着计算相同碱基对占总碱基对数量的比例,如果该比例大于等于给定阈值时则判定该两条 DNA 序列是相关的,否则不相关。

输入格式

有三行,第一行是用来判定出两条 DNA 序列是否相关的阈值,随后 2 行是两条 DNA 序列(长度不大于 500)。

输出格式

若两条 DNA 序列相关,则输出 yes,否则输出no

输入输出样例

输入 #1

0.85
ATCGCCGTAAGTAACGGTTTTAAATAGGCC
ATCGCCGGAAGTAACGGTCTTAAATAGGCC

输出 #1

yes

思路:

输入之后统计两个字符串有多少个字符相同,然后做个计算,比较一下即可

AC代码:

#include<bits/stdc++.h>
using namespace std;
signed main()
{
    string s1,s2;
    double d;
    cin >> d;
    cin >> s1 >> s2;
    double cnt=0;
    for(int i=0;i<s1.size();i++)
    {
        cnt+=s1[i]==s2[i];
    }
    cnt/s1.size()>=d?cout<<"yes":cout<<"no";
    return 0;
}

第四题:B2113 输出亲朋字符串

题目描述

亲朋字符串定义如下:给定字符串 s 的第一个字符的 ASCII 值加第二个字符的 ASCII 值,得到第一个亲朋字符;s 的第二个字符加第三个字符得到第二个亲朋字符;依此类推。注意:亲朋字符串的最后一个字符由 ss 的最后一个字符 ASCII 值加 s 的第一个字符的 ASCII 值。

输入格式

输入一行,一个长度大于等于 2,小于等于 100 的字符串。

输出格式

输出一行,为变换后的亲朋字符串。输入保证变换后的字符串只有一行。

输入输出样例

输入 #1

1234

输出 #1

cege

思路:

依题意模拟就好

AC代码:

#include<bits/stdc++.h>
using namespace std;
signed main()
{
    string s1;
    cin >> s1;
    for(int i=0;i<s1.size()-1;i++)
    {
        cout<<char(s1[i]+s1[i+1]);
    }
    cout<<char(s1[s1.size()-1]+s1[0]);
    return 0;
}

这篇博客就到这里啦,我们下篇博客见!

标签:字符,洛谷,水题,输出,int,题解,字符串,DNA,输入
From: https://blog.csdn.net/woshishabi0716/article/details/141056590

相关文章

  • ABC366简要题解
    C直接维护一个桶,表示每个元素当前的出现次数。再利用这个桶直接维护答案即可。D三维前缀和模板题。E注意到答案中只会出现\(O(n)\)个不同\(x\),以及\(O(n)\)个不同的\(y\)。于是单独考虑\(x\)和\(y\),最后尺取求一下答案即可。F首先我第一个尝试的思路是贪心,但是......
  • Buuctf-Mysterious另类逆向题解
    下载发现是一个exe可执行文件双击运行,输入密码123456没有任何反应,当然没反应,密码肯定不对请出IDApro,我这里用IDAProv8.3演示,把exe文件拖拽到IDA打开按shift+F12快捷键搜索字符串我们发现第二行有可疑字符串,有flag嫌疑,双击上面的welldonewelldone里“Buff3r_0......
  • Codeforces Round 965 (Div. 2) 题解
    个人难度顺序:A<D<B<C<E。A.FindKDistinctPointswithFixedCenter如果\(k\)是偶数,构造\((x_c+i,yc+i)\),其中\(-\frac{k}{2}\lei\le\frac{k}{2}\)。对于\(k\)是奇数,先加一个点\((xc,yc)\),然后就变成偶数的情况了。B.MinimizeEqualSumSubarr......
  • ABC366-D 题解
    三维前缀和板子。三维前缀和可以类似二维前缀和来做,先给一下二维前缀和数组的计算方法:\[sum_{i,j}=a_{i,j}+sum_{i-1,j}+sum_{i,j-1}-sum_{i-1,j-1}\]同样的,可以写出三维前缀和数组的计算方法:\[sum_{i,j,k}=a_{i,j,k}+sum_{i,j,k-1}+sum_{i,j-1,k}+sum_{i-1,j,k}-sum_{i,j-1,k......
  • [COCI2015-2016#3] NEKAMELEONI 题解
    前言题目链接:洛谷。题意简述你要维护一个序列\(a_i\in[1,k]\)(\(k\leq50\)),支持:单点修改;询问最短的包含全部\(1\simk\)的自区间长度,或报告无解。题目分析我想到了两种做法,写题解以加深印象。方法\(1\):直接用线段树维护只有单点修改,尝试用线段树维护分治。考虑......
  • AtCoder Beginner Contest 366 C,D题解
    C-BallsandBagQuery题解题意没什么好说的,给出q次查询,进行求解思路很简单的一道题,但这篇题解的作用是引出unordered_set,这个东西的作用类似set,但没有排序,相当于哈希。unordered_set有几种操作,接下来介绍三种insert,没什么可说的,普通的插入erase,进行弹出size,返回大......
  • ABC 366 题解
    AtCoderBeginnerContest366题解:\(Problem\hspace{2mm}A-Election\hspace{2mm}2\)题目链接opinion:很显然,当一个人的票数大于等于\(\lceil\frac{n}{2}\rceil\)时此人一定当选。(或可理解为投票结果一定固定。)依次判断两人即可。code:#include<bits/stdc++......
  • CF1674G Remove Directed Edges 题解
    CF1674G给出一个\(n\)点\(m\)边的有向无环图,你需要从中移除一些边,使得对于每一个点,其入度减少(如果原来有入边),出度也减少(如果原来有出边)。当删完边以后,如果有一个点集,满足对于任两点\((i,j)\)可以从\(i\)走到\(j\)或可以从\(j\)走到\(i\),那就称其为可爱的。现在要......
  • CF1863E Speedrun 题解
    CF1863E你在玩一个游戏,要完成\(n\)个任务。其中对于每个任务\(i\),它只能在某一天的第\(h_i\)时刻完成。游戏每天有\(k\)个小时,分别编号为\(0,1,...k-1\)。给出\(m\)对任务间的依赖关系,\((a_i,b_i)\)表示\(a_i\)必须比\(b_i\)先完成。保证依赖关系不形成环。完......
  • 洛谷 P10852 Awaken——题解
    洛谷P10852题解传送锚点摸鱼环节【MX-X2-T1】「CfzRound4」Awaken题目背景能否等到梦醒了的时候。题目描述月做了一个梦。在梦中,她拿到了一个长度为\(n\)的整数序列\(a_1,\ldots,a_n\),其中\(\bm{n\ge5}\)。梦醒了。月忘记了这个序列中的一部分元素,留下了空白......