字符串处理(二)

第1题     篮球比赛 查看测评数据信息

学校举行篮球比赛,请设计一个计分系统统计KIN、WIN两队分数,并输出分数和结果!

如果平分就输出‘GOOD’,否则输出获胜队名!

输入格式

输入数据共n+1行, 第1行n;

然后有n行,每行输入每次得分代号和得分队名,两者间有空格!

(’A’表示一分,’B’表示2分,’C’表示3分,队名确保只有2个!)

输出格式

输出数据共1行,输出分数和结果 KIN:WIN的分数 获胜队名,平分输出‘GOOD’。

输入/输出例子1

输入:

5

B KIN

C WIN

B WIN

A KIN

C KIN

输出:

6:5 KIN

#include<bits/stdc++.h>
using namespace std;
long long n,x,y;
char c;
string s;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>c>>s;
        if(s=="KIN"){
            if(c=='A')x+=1;
            else if(c=='B')x+=2;
            else x+=3;
        }
        else {
            if(c=='A')y+=1;
            else if(c=='B')y+=2;
            else y+=3;
        }
    }
    cout<<x<<":"<<y<<" ";
    if(x>y)cout<<"KIN";
    else if(x<y)cout<<"WIN";
    else cout<<"GOOD";
    return 0;
}
第2题     旋转单词 查看测评数据信息

今天的英语课,王老师为了复习以前学过的单词,提高学生的学习兴趣,想出了一个主意:

读入M组数据,其中每组数据有一个单词L(单词长度≤36个字符)和一个整数N(1≤N≤36),从该单词最末位开始逐位移到单词的开头,如果还没达到N值,则再从末位开始移动,直到达N 值为止,求移N位后的新单词。你能编程帮助贝贝最快完成任务吗?

输入格式

输入数据共2*m+1行,第一行为整数m,表示有m对字符串和整数;

接下来的2*m行,第2行开始为具体数据,每一组数据有2行,第1行字串s,第2行为n。

输出格式

共m行,每行为旋转后的字串。

输入/输出例子1

输入:

1

computer

3

输出:

tercompu

输入/输出例子2

输入:

1

program

1

输出:

mprogra

输入/输出例子3

输入:

1

ABCDEFGH

35

输出:

FGHABCDE

#include<bits/stdc++.h>
using namespace std;
string len;
long long s,n;
int main(){
    cin>>n;
    while(n--){
        cin>>len>>s;
        for(int i=len.size()-s%len.size();i<len.size();i++){
            printf("%c",len[i]);
        }
        for(int i=0;i<len.size()-s%len.size();i++){
            printf("%c",len[i]);
        }
        printf("\n");
    }
	return 0;
}
第3题     数根 查看测评数据信息

正整数的数根指的是该整数各位数字的和。如果结果是一位数,那么这个数就是数根;如果结果有两个或两个以的数字,那么就只需将结果的各位数字再相加直到只是一位数字。 

例如正整数24,2和4相加等于6,因为6是一位数,6就是24的数根;再如正整数39,3和9相加等于12,因为12不是一位数,所以必须重复该过程,把1和2相加等于3,这是一位数,也是39的数根。

输入格式

仅一行,一个整数,这个整数不超过100位。

输出格式

仅一行,一个数,该数是输入的整数的数根。

输入/输出例子1

输入:

123

输出:

6

#include<bits/stdc++.h>
using namespace std;
int f(int x){
    int y=0;
    while(x>=1){
        y+=x%10;
        x/=10;
    }
    while(y>9){
        y=f(y);
    }
    return y;
}
string s;
int sum;
int main(){
    while(cin>>s){
        for(int i=0;i<s.size();i++){
            sum+=s[i]-'0';
        }
        cout<<f(sum)<<'\n';
    }
    return 0;
}
第4题     提取整数再求和 查看测评数据信息

有一行由任意字符组成的字符串,请求出其中所有数的和。最长连续的数不超过18位。

输入格式

一个字符串,长度小于100000.

输出格式

一个整数。

输入/输出例子1

输入:

aAs123h+45dw

输出:

168

样例解释

答案不超过long long范围。

#include<bits/stdc++.h>
using namespace std;
string s;
long long x,t; 
int main(){
	getline(cin,s);
	for(int i=0;i<s.size();i++){
		if(s[i]>='0'&&s[i]<='9'){
			t=0;
			for(;i<s.size()&&s[i]>='0' &&s[i]<='9';i++){
				t=t*10+(s[i]-'0');
			}
			x+=t; 
		}
	}
	cout<<x;
	return 0;
} 
第5题     纳米文 查看测评数据信息

一天,摇摇很荣幸地来到了纳米星球。可他发现一种奇怪的文字——纳米文,就研究起来了。经过不懈的努力,摇摇终于发现改怎么把纳米文转换成地球的文字了:纳米文是一串字符,然后按照下面有一个数字n,然后有n条命令,每条命令有1个或2个字符。如果只有1个字符,就把字符串中的所有这个字符去掉。如果有2个字符,就是把字符串中的所有第一个字符换成那第二个字符。现在摇摇给你纳米文,请把它转成地球文。

输入格式

输入数据共n+2行,第1行:一个字符串(这个字符串可能有空格)。

第2行,一个正整数n。

第3到n+2行,共n行命令字符。

输出格式

输出数据仅1行,即转换后的地球文。

输入/输出例子1

输入:

g31a1333g3ccl11t13hhg

7

z

1

h

c p

t e

g

3

输出:

apple

样例解释

g31a1333g3ccl11t13hhg

7

z     {去掉所有的“z”}

1     {去掉所有的“1”}

h     {去掉所有的“h”}

c p   {把所有的“c”换成“p”}

t e   {把所有的“t”换成“e”}

g     {去掉所有的“g”}

3     {去掉所有的“3”}

#include<bits/stdc++.h>
using namespace std;
int main(){
    string s;
    int n;
    getline(cin,s); 
    cin>>n; 
    cin.ignore(); 
    for(int i=0;i<n;i++){
        string x;
        getline(cin,x); 
        if(x.size()==1){
            size_t pos=s.find(x);
            while(pos!=string::npos){
                s.erase(pos,1);
                pos=s.find(x,pos);
            }
        } 
		else if(x.size()==3){
            size_t pos=s.find(x[0]);
            while(pos!=string::npos){
                s[pos]=x[2]; 
                pos=s.find(x[0], pos+1);
            }
        }
    }
    cout<<s;
    return 0;
}
第6题     单词缩写 查看测评数据信息

众所周知,我们通常用一个单词的首字母组成的字符串来代替一个很长的英文名称,例如:ACM是“Association for Computing Machinery”的缩写。现在我们给出一些单词序列,要求按以下规则求出该单词序列的缩写。(缩写有可能是空的) 

1.凡是字母个数小于等于2的单词不要。 

2.“and”、“for”、“the”这三个单词不要(包括大小写的情况)。 

3.除1、2点外的单词取首字母的大写形式按顺序连起来。

输入格式

第一行为一个整数n,表示要求的单词缩写的个数。(n<=100) 

 接下来n行,每行一个长度小于100的单词序列,每个单词都是由大写或小写字母组成,每个单词之间有一个空格。

输出格式

输出n行,每行为对应的单词缩写。

输入/输出例子1

输入:

5

Association for Computer Machinery

Institute of Electricaland Electronics Engineers

SUN YAT SEN UNIVERSITY

The Lord of the Rings 

netease

输出:

ACM

IEEE

SYSU

LR

N

#include<bits/stdc++.h>
using namespace std;
string s,c[4]={" AND" , " FOR ", " THE "};
int n;
int main(){
	cin>>n;
	getline(cin,s);
	while(n--){
		getline(cin,s);
		for(int i=0;i<s.size();i++)
		s[i]=toupper(s[i]);
		s=" "+s+" ";
		for(int i=0;i<3;i++)
            while(s.find(c[i])!=-1)
                s.erase(s.find(c[i])+1,4);
		for(int i=0;i<s.size()-1;i++)
			if(s[i]==' '&&s[i+1]!=' '&&s[i+2]!=' '&&s[i+3]!=' ')
				cout<<s[i+1];
		cout<<endl;
	}
	return 0;
}
第7题     电文加密 查看测评数据信息

在军事上,通讯的工具往往是收发电文,但敌方会利用仪器设备接收到电文,所以为了使电文保密,可以按一定的规律将电文转换成密码再发送,收报人再按约定的规律将其译回原文,现按这样的规律加密英文电文:将26个英文字母按顺时针围成一圈,把要发送的英文字母转变成其后的第N(1≤N≤25)个字母(除英文字母外,电文中的其它字符不用加密)。例如:如图1,把大写字母A转变成其后的第3个字母是D,把大写字母Y转变成其后的第3个字母是B,小写字母的加密方法也一样,如把b转变成其后的第3个字母是e,把y转变成其后的第三个字母是b。例如电文"1Day."按把字母转变成其后的第3个字母的方法进行加密是:"1Gdb."。已知"A"的ASCII是65,"a"的ASCII是97。

20180711123616_16290.jpg

输入格式

输入数据仅1行:A$,N (A$为英文字串,N为转换为其后的第N个字母,1≤N≤25,英文字串与N之间用‘,’隔开)。

输出格式

输出数据仅1行,把英文字串A$转换为其后的第N个字母的新字串。

输入/输出例子1

输入:

Tow.,4

输出:

Xsa.

#include<bits/stdc++.h>
using namespace std;
string a;
int main (){
    getline(cin,a);
    int t=a.find(',')+1,s=0;
    for(int i=t;i<a.size();i++){
        s=s*10+(a[i]-'0');
        s%=26;
    }
    for(int i=0;i<t-1;i++){
	    if(a[i]>='a'&&a[i]<='z')
		    for(int j=1;j<=s;j++){ 
			    a[i]++;
			    if(a[i]>'z')a[i]='a';
		    }
	    else if(a[i]>='A' &&a[i] <= 'Z')
		    for(int j=1;j<=s;j++){
			    a[i]++;
			    if(a[i]>'Z')a[i]='A';
		    }
	    cout<<a[i];
    }
    return 0;
}
第8        题     统计单词数  查看测评数据信息

一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。

现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例1),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2)。

输入格式

第 1 行为一个字符串,其中只含字母,表示给定单词;

第 2 行为一个字符串,其中只可能包含字母和空格,表示给定的文章。

【数据范围】

1 ≤ 单词长度≤ 10。

1 ≤ 文章长度≤ 1,000,000。

输出格式

只有一行,如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔开,分别是单词在文章中出现的次数和第一次出现的位置(即在文章中第一次出现时,单词首字母在文章中的位置,位置从0 开始);如果单词在文章中没有出现,则直接输出一个整数-1。

注释:位置的计算包括空格,两个单词之间可能有多个空格

输入/输出例子1

输入:

To

to be or not to be is a question

输出:

2 0

输入/输出例子2

输入:

to

Did the Ottoman Empire lose its power at that time

输出:

-1

样例解释

【输入输出样例 1 说明】

输出结果表示给定的单词 To 在文章中出现两次,第一次出现的位置为0。

【输入输出样例 2 说明】

表示给定的单词 to 在文章中没有出现,输出整数-1。

#include<bits/stdc++.h>
using namespace std;
string f(string a){
    for(int i=0;i<a.size();i++)
        if(a[i]>='A'&&a[i]<='Z')
            a[i]=a[i]-'A'+'a';
    return a;
}
int main(){
	int pos1,pos2,cnt,index;
    string a,b,x;
    cin>>a;
    a=f(a);
    getchar();
    getline(cin,b);
    b=f(b);
    pos1=-1,cnt=0;
    for(;;){
        pos2=b.find(' ',pos1+1);
        x=b.substr(pos1+1,pos2-pos1-1);
		if(x==a){
        	if(!cnt)index=pos1+1;
        	cnt++;
		}
		pos1=pos2;
		if(pos2==-1)break;
    }
    if(!cnt)printf("-1");
    else printf("%d %d",cnt,index);
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/927940.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据库系列】Liquibase 与 Flyway 的详细对比

在现代软件开发中&#xff0c;数据库版本控制是一个至关重要的环节。为了解决数据库迁移和变更管理的问题&#xff0c;开发者们通常会使用工具&#xff0c;如 Liquibase 和 Flyway。本文将对这两个流行的数据库迁移工具进行详细比较&#xff0c;从基础概念、原理、优缺点到使用…

企业品牌曝光的新策略:短视频矩阵系统

企业品牌曝光的新策略&#xff1a;短视频矩阵系统 在当今数字化时代&#xff0c;短视频已经渗透到我们的日常生活之中&#xff0c;成为连接品牌与消费者的关键渠道。然而&#xff0c;随着平台于7月20日全面下线了短视频矩阵的官方接口&#xff0c;许多依赖于此接口的小公司和内…

PostgreSQL最常用数据类型-重点说明自增主键处理

简介 PostgreSQL提供了非常丰富的数据类型&#xff0c;我们平常使用最多的基本就3类&#xff1a; 数字类型字符类型时间类型 这篇文章重点介绍这3中类型&#xff0c;因为对于高并发项目还是推荐&#xff1a;尽量使用简单类型&#xff0c;把运算和逻辑放在应用中&#xff0c;…

做异端中的异端 -- Emacs裸奔之路4: 你不需要IDE

确切地说&#xff0c;你不需要在IDE里面编写或者阅读代码。 IDE用于Render资源文件比较合适&#xff0c;但处理文本&#xff0c;并不划算。 这的文本文件&#xff0c;包括源代码&#xff0c;配置文件&#xff0c;文档等非二进制文件。 先说说IDE带的便利: 函数或者变量的自动…

ospf协议(动态路由协议)

ospf基本概念 定义 OSPF 是典型的链路状态路由协议&#xff0c;是目前业内使用非常广泛的 IGP 协议之一。 目前针对 IPv4 协议使用的是 OSPF Version 2 &#xff08; RFC2328 &#xff09;&#xff1b;针对 IPv6 协议使用 OSPF Version 3 &#xff08; RFC2740 &#xff09;。…

【热门主题】000072 分布式数据库:开启数据管理新纪元

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【热…

Python 3 教程第33篇(MySQL - mysql-connector 驱动)

Python MySQL - mysql-connector 驱动 MySQL 是最流行的关系型数据库管理系统&#xff0c;如果你不熟悉 MySQL&#xff0c;可以阅读我们的 MySQL 教程。 本章节我们为大家介绍使用 mysql-connector 来连接使用 MySQL&#xff0c; mysql-connector 是 MySQL 官方提供的驱动器。…

ENSP IPV6-over-IPV4

IPv6是网络层协议的第二代标准协议&#xff0c;一个IPv6地址同样可以分为网络前缀和主机ID两个部分。 可以将IPV4的网络看成IPV6的承载网&#xff0c;只有IPv4网络是连通的&#xff0c;则IPv6网络才有可能连通。所以配置的时候需要先配置IPv4网络的路由功能&#xff0c;再配IP…

《数据挖掘:概念、模型、方法与算法(第三版)》

嘿&#xff0c;数据挖掘的小伙伴们&#xff01;今天我要给你们介绍一本超级实用的书——《数据挖掘&#xff1a;概念、模型、方法与算法》第三版。这本书是数据挖掘领域的经典之作&#xff0c;由该领域的知名专家编写&#xff0c;系统性地介绍了在高维数据空间中分析和提取大量…

53 基于单片机的8路抢答器加记分

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 首先有三个按键 分别为开始 暂停 复位&#xff0c;然后八个选手按键&#xff0c;开机显示四条杠&#xff0c;然后按一号选手按键&#xff0c;数码管显示&#xff13;&#xff10;&#xff0c;这…

从零开始写游戏之斗地主-网络通信

在确定了数据结构后&#xff0c;原本是打算直接开始写斗地主的游戏运行逻辑的。但是突然想到我本地写出来之后&#xff0c;也测试不了啊&#xff0c;所以还是先写通信模块了。 基本框架 在Java语言中搞网络通信&#xff0c;那么就得请出Netty这个老演员了。 主要分为两个端&…

Logistic Regression(逻辑回归)、Maximum Likelihood Estimatio(最大似然估计)

Logistic Regression&#xff08;逻辑回归&#xff09;、Maximum Likelihood Estimatio&#xff08;最大似然估计&#xff09; 逻辑回归&#xff08;Logistic Regression&#xff0c;LR&#xff09;逻辑回归的基本思想逻辑回归模型逻辑回归的目标最大似然估计优化方法 逻辑回归…

数据类型.

数据类型分类 数值类型 tinyint类型 以tinyint为例所有数值类型默认都是有符号的&#xff0c;无符号的需要在后面加unsignedtinyint的范围在-128~127之间无符号的范围在0~255之间(类比char) create database test_db; use test_db;建表时一定要跟着写上属性 mysql> creat…

IDEA使用HotSwapHelper进行热部署

目录 前言JDK1.8特殊准备DECVM安装插件安装与配置参考文档相关下载 前言 碰到了一个项目&#xff0c;用jrebel启动项目时一直报错&#xff0c;不用jrebel时又没问题&#xff0c;找不到原因&#xff0c;又不想放弃热部署功能 因此思考能否通过其他方式进行热部署&#xff0c;找…

机器学习算法(六)---逻辑回归

常见的十大机器学习算法&#xff1a; 机器学习算法&#xff08;一&#xff09;—决策树 机器学习算法&#xff08;二&#xff09;—支持向量机SVM 机器学习算法&#xff08;三&#xff09;—K近邻 机器学习算法&#xff08;四&#xff09;—集成算法 机器学习算法&#xff08;五…

【Electron学习笔记(四)】进程通信(IPC)

进程通信&#xff08;IPC&#xff09; 进程通信&#xff08;IPC&#xff09;前言正文1、渲染进程→主进程&#xff08;单向&#xff09;2、渲染进程⇌主进程&#xff08;双向&#xff09;3、主进程→渲染进程 进程通信&#xff08;IPC&#xff09; 前言 在Electron框架中&…

GateWay使用手册

好的&#xff0c;下面是优化后的版本。为了提高可读性和规范性&#xff0c;我对内容进行了结构化、简化了部分代码&#xff0c;同时增加了注释说明&#xff0c;便于理解。 1. 引入依赖 在 pom.xml 中添加以下依赖&#xff1a; <dependencies><!-- Spring Cloud Gate…

【Go 基础】channel

Go 基础 channel 什么是channel&#xff0c;为什么它可以做到线程安全 Go 的设计思想就是&#xff1a;不要通过共享内存来通信&#xff0c;而是通过通信来共享内存。 前者就是传统的加锁&#xff0c;后者就是 channel。也即&#xff0c;channel 的主要目的就是在多任务间传递…

C# 解决【托管调试助手 “ContextSwitchDeadlock“:……】问题

文章目录 一、遇到问题二、解决办法 一、遇到问题 托管调试助手 “ContextSwitchDeadlock”:“CLR 无法从 COM 上下文 0x56e81e70 转换为 COM 上下文 0x56e81d48&#xff0c;这种状态已持续 60 秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows …

Spring AI 框架介绍

Spring AI是一个面向人工智能工程的应用框架。它的目标是将Spring生态系统的设计原则&#xff08;如可移植性和模块化设计&#xff09;应用于AI领域&#xff0c;并推广使用pojo作为AI领域应用的构建模块。 概述 Spring AI 现在(2024/12)已经支持语言&#xff0c;图像&#xf…