
c++字符串
关于c++字符串的acm训练题解法与个人总结。。
Brightess
毕业于湖南城市学院
目前在某游戏大厂搬砖(
展开
-
第 41 场周赛 4308. 组合字符串(A题:暴力枚举)
#pragma GCC optimize(2)#include<bits/stdc++.h>using namespace std;#define int long longstring s1, s2, s3;signed main(){ cin>>s1>>s2; s3 = "zzzzzzzzzzzzzzzzzzzz"; for(int len1 = 1; len1<=s1.size();++le..原创 2022-03-05 21:56:18 · 94 阅读 · 0 评论 -
2021四川省赛H题 Nihongo wa Muzukashii Desu(指针数组,strstr函数的应用)2021-07-20
#include <iostream>#include <cstdio>#include <cstring>using namespace std;char* suffix[10]={"chimasu","rimasu","mimasu","bimasu","nimasu","kimasu","gimasu","shimasu","imasu"};//后缀int main(){ int t; char word[30]; scanf("原创 2021-07-20 20:37:42 · 588 阅读 · 0 评论 -
AcWing 776. 字符串移位包含问题(枚举匹配 or find())
对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串。给定两个字符串 s1 和 s2,要求判定其中一个字符串是否是另一字符串通过若干次循环移位后的新字符串的子串。例如 CDAA 是由 AABCD 两次移位后产生的新串 BCDAA 的子串,而 ABCD 与 ACBD 则不能通过多次移位来得到其中一个字符串是新串的子串。输入格式共一行,包含两个字符串,中间由单个空格隔开。字符串只包含字母和数字,长度不超过 30。输出格式如果一个字符串是另一字符串通过若干次循环移原创 2021-08-16 19:13:26 · 219 阅读 · 4 评论 -
AcWing 771. 字符串中最长的连续出现的字符(第一类双指针算法)
求一个字符串中最长的连续出现的字符,输出该字符及其出现次数,字符串中无空白字符(空格、回车和 tab),如果这样的字符不止一个,则输出第一个。输入格式第一行输入整数 N,表示测试数据的组数。每组数据占一行,包含一个不含空白字符的字符串,字符串长度不超过 200。输出格式共一行,输出最长的连续出现的字符及其出现次数,中间用空格隔开。输入样例:2aaaaabbbbbcccccccddddddddddabcdefghigk输出样例:d 10a 1#include<iostream&原创 2021-08-16 10:38:49 · 208 阅读 · 0 评论 -
AcWing 778. 字符串最大跨距(正逆枚举匹配 or find()&rfind())
有三个字符串 S,S1,S2,其中,S 长度不超过 300,S1 和 S2 的长度不超过 10。现在,我们想要检测 S1 和 S2 是否同时在 S 中出现,且 S1 位于 S2 的左边,并在 S 中互不交叉(即,S1 的右边界点在 S2 的左边界点的左侧)。计算满足上述条件的最大跨距(即,最大间隔距离:最右边的 S2 的起始点与最左边的 S1 的终止点之间的字符数目)。如果没有满足条件的 S1,S2 存在,则输出 −1。例如,S= abcd123ab888efghij45ef67kl, S1= ab原创 2021-08-17 11:38:22 · 209 阅读 · 0 评论 -
AcWing 775. 倒排单词(Ctril+z终止读入)
利用Ctril+z终止输入!#include<iostream>#include<string>using namespace std;int main(){ string s[110]; int i=0; while(cin>>s[i]) i++; //cout<<i<<endl;//单词个数 //0~i-1下标位置有单词 for(int j=i-1;j>=0;j--)原创 2021-08-16 15:24:30 · 154 阅读 · 0 评论 -
AcWing 779. 最长公共字符串后缀(两种方案)
给出若干个字符串,输出这些字符串的最长公共后缀。输入格式由若干组输入组成。每组输入的第一行是一个整数 N。N 为 0 时表示输入结束,否则后面会继续有 N 行输入,每行是一个字符串(字符串内不含空白符)。每个字符串的长度不超过 200。输出格式共一行,为 N 个字符串的最长公共后缀(可能为空)。数据范围1≤N≤200输入样例:3babaabacba2aacc2aaa0输出样例:baa以后给二维字符数组赋值最好还是用for循环吧,今天用了个while,有些地方原创 2021-08-17 17:19:10 · 503 阅读 · 0 评论 -
AcWing 770. 单词的替换(讨论stringstream的用法)
在这道题中学到了点新东西,stringstream首先来分析一下它的用法:(stringstream的使用要引用sstream头文件)我们使用stringstream可将字符串初始化为一个类似于cin的东西,之后就可以读取出来任意我们需要格式的信息(以空格为界)下面展示一个简单的用法:#include<iostream>#include<sstream>using namespace std;int main(){ string s; getlin原创 2021-08-15 23:20:24 · 452 阅读 · 0 评论 -
AcWing 766. 去掉多余空格(第一类双指针算法)
输入一个字符串,字符串中可能包含多个连续的空格,请将多余的空格去掉,只留下一个空格。输入格式共一行,包含一个字符串。输出格式输出去掉多余空格后的字符串,占一行。数据范围输入字符串的长度不超过 200。输入样例:Hello world.This is c language.输出样例:Hello world.This is c language.//简便做法:利用cin不接受空格,Tab,回车#include<iostream>#include<str原创 2021-08-15 21:01:45 · 277 阅读 · 0 评论 -
AcWing 777. 字符串乘方(运用substr函数,string初始化)
给定两个字符串 a 和 b,我们定义 a×b 为他们的连接。例如,如果 a=abc 而 b=def, 则 a×b=abcdef。如果我们将连接考虑成乘法,一个非负整数的乘方将用一种通常的方式定义:a^ 0=``(空字符串),a^ (n+1)=a×(a^n)。输入格式输入包含多组测试样例,每组测试样例占一行。每组样例包含一个字符串 s,s 的长度不超过 100。最后的测试样例后面将是一个点号作为一行。输出格式对于每一个 s,你需要输出最大的 n,使得存在一个字符串 a,让 s=a^n。输入样原创 2021-08-16 22:18:45 · 286 阅读 · 0 评论 -
AcWing 774. 最长单词(c++11的str.back(),str.pop_back()函数)
一个以 . 结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式,求句子中的最长单词。输入格式输入这个简单英文句子,长度不超过 500。输出格式该句子中最长的单词。如果多于一个,则输出第一个。输入样例:I am a student of Peking University.输出样例:University(string) s.back()—字符串s最后一个字符(string) s.pop_back()—弹出字符串s最后一个字符#include<iostream>原创 2021-08-16 11:36:38 · 751 阅读 · 0 评论