C语言-每日刷题练习

news2024/11/25 9:55:43

[蓝桥杯 2013 省 B] 翻硬币

 

题目背景

小明正在玩一个“翻硬币”的游戏。

题目描述

桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零),比如可能情形是 **oo***oooo,如果同时翻转左边的两个硬币,则变为 oooo***oooo。现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?

输入格式

两行等长字符串,分别表示初始状态和要达到的目标状态,每行长度小于 1000。

数据保证一定存在至少一种方案可以从初始状态和要达到的目标状态。

输出格式

一个整数,表示最小操作步数。

输入输出样例

输入输出样例

输入 #1

**********
o****o****

输出 #1

5

 输入 #2

*o**o***o***
*o***o**o***

 输出 #2

1
#include<stdio.h>
#include<string.h>
#include <assert.h>
int main()
{
	char arr[1000] = { 0 }, str[1000] = { 0 }, count = 0;
	scanf("%s%s", &arr, &str);
	assert(strlen(arr)== strlen(str));//断言-判断两个字符串长度是否相等
	int rs = strlen(arr);
	int i = 0;
	while (i < rs)//遍历找不同
	{
		if (arr[i] != str[i])
		{
			arr[i] = (arr[i] == '*' ? 'o' : '*');
			arr[i + 1] = (arr[i + 1] == '*' ? 'o' : '*');
			count++;
		}
		i++;
	}
	printf("%d", count);
	return 0;
}

 [NOIP2006 普及组] 明明的随机数

题目描述

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了 N 个 1 到 1000 之间的随机整数 (N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。

输入格式

输入有两行,第 1 行为 1 个正整数,表示所生成的随机数的个数 N。

第 2 行有 N 个用空格隔开的正整数,为所产生的随机数。

输出格式

输出也是两行,第 1 行为 1 个正整数 M,表示不相同的随机数的个数。

第 2 行为 M 个用空格隔开的正整数,为从小到大排好序的不相同的随机数。

输入输出样例

输入 #1

10
20 40 32 67 40 20 89 300 400 15

输出 #1

8
15 20 32 40 67 89 300 400
#include<stdio.h>
int main()
{
	int n = 0, str[100] = { 0 }, temp = 0;
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &str[i]);
	}
	for (int i = 0; i < n - 1; i++)
	{
		for (int j = 0; j < n - 1 - i; j++)
		{
			if (str[j + 1] < str[j])
			{
				temp = str[j + 1];
				str[j + 1] = str[j];
				str[j] = temp;
			}
		}
	}
	for (int i = 0; i < n - 1; i++)//n-1是为了防止越界
	{
		//把i+1后边的元素往前覆盖
		if (str[i] == str[i + 1])
		{
			for (int k = i; k < n - 1; k++)
			{
				str[k] = str[k + 1];
			}
			n--;
			i--;
		}
	}
	printf("%d\n", n);
	for (int i = 0; i < n; i++)
	{
		printf("%d ", str[i]);
	}
	return 0;
}

P8835 [传智杯 #3 决赛] 子串

 

题目背景

disangan233 喜欢字符串,于是 disangan333 想让你找一些 disangan233 喜欢的串。

题目描述

在传智的开发课堂上,希望您开发一款文档处理软件。

给定 T 组询问,每次给定 2 个长度为 n,m 的只含英文字母的字符串 a,b,求 a 在 b 中的出现次数,相同字符不区分大小写。注意 a 是 b 中连续子序列。

对于所有数据,T≤100,∑n≤∑m≤10^3。字符串仅由大小或者小写的英文字母组成。

输入格式

输入共 3T+1 行。

第 1 行输入 1 个正整数 T。

接下来共 T 组输入,每组输入共 3 行。

第 1 行输入 2 个正整数 n,m。

第 2 行输入一个长度为 n 的字符串 a。

第 3 行输入一个长度为 m 的字符串 b。

输出格式

输出共 T 行,第 i 行输出 1 个整数,表示询问 i 的答案。

输入输出样例

输入 #1

5
3 10
abc
abcabcabca
2 10
aa
AAaAaaAaAa
5 5
AbCdE
eDcBa
5 5
abcde
ABCDE
3 10
aba
ABaBaAbaBA

输出 #1

3
9
0
1
4
#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
#include<string.h>
int main()
{
	int  t = 0, n = 0, m = 0, count = 0;//t小组数,n,m字符串的长度,count计数器
	scanf("%d", &t);
	while (t--)
	{
		scanf("%d%d", &n, &m);
		char* a = (char*)malloc( (n+1) * sizeof(char));//开辟数组a的动态内存空间
		                                               //因为数组类型是字符串要留一个字节放斜杆零,防止越界访问
		if (a == NULL)
		{
			return  1;
		}
		scanf("%s", a);
		char* b = (char*)malloc( (m+1) * sizeof(char));//开辟数组b的动态内存空间
		if (b == NULL)
		{
			return 1;
		}
			scanf("%s", b);
			char* ptr = b;//记录b的首地址
		for (int i = 0; i < n; i++)
		{
			*a = tolower(*a);//统一转换为小写
		}
		for (int i = 0; i < m; i++)
		{
			*b = tolower(*b);
		}
		for (int i = 0; i < m; i++)
		{
			if (strncmp( a ,ptr , n) == 0)  //比较前n个字符相同,count++
			{
				count++;
				ptr + n;                    //指向b的指针向前挪动n位比较下一个
			}
			ptr++;
			if (m - i < n)
			{
				break;
			}
		}
		printf("%d", count);
		free(a);                            //释放动态空间
		a = NULL;
		free(b);
		b = NULL;
	}
	return 0;
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于hadoop下的spark安装

目录 简介 安装准备 spark安装 配置文件配置 简介 Spark主要⽤于⼤数据的并⾏计算&#xff0c;⽽Hadoop在企业主要⽤于⼤数据的存储&#xff08;⽐如HDFS、Hive和HBase 等&#xff09;&#xff0c;以及资源调度&#xff08;Yarn&#xff09;。但是也有很多公司也在使⽤MR2进…

坚鹏:中国邮政储蓄银行数字化转型战略、方法与案例培训

中国邮政储蓄银行拥有优良的资产质量和显著的成长潜力&#xff0c;是中国领先的大型零售银行。2016年9月在香港联交所挂牌上市&#xff0c;2019年12月在上交所挂牌上市。中国邮政储蓄银行拥有近4万个营业网点&#xff0c;服务个人客户超6.5亿户。2022年&#xff0c;在《银行家》…

关于大模型ChatGLM3-6B在CPU下运行

最近在调研市场上语言大模型&#xff0c;为公司的产品上虚拟人的推出做准备。各厂提供语言模型都很丰富&#xff0c;使用上也很方便&#xff0c;有API接口可以调用。但唯一的不足&#xff0c;对于提供给百万用户使用的产品&#xff0c;相比价格都比较贵。所以对ChatGLM3-6B的使…

仿照MyBatis手写一个持久层框架学习

首先数据准备&#xff0c;创建MySQL数据库mybatis&#xff0c;创建表并插入数据。 DROP TABLE IF EXISTS user_t; CREATE TABLE user_t ( id INT PRIMARY KEY, username VARCHAR ( 128 ) ); INSERT INTO user_t VALUES(1,Tom); INSERT INTO user_t VALUES(2,Jerry);JDBC API允…

2024 年最值得推荐的 7 个 Vue3 组件库

你好&#xff0c;我是 Kagol。 Vue 是一款易学易用&#xff0c;性能出色&#xff0c;适用场景丰富的渐进式 JavaScript 框架&#xff0c;深受广大开发者的喜爱&#xff0c;Vue3 更是推出了 Composition API&#xff0c;让逻辑复用更友好。 马上就到 2024 年了&#xff0c;如果…

html通过CDN引入Vue使用Vuex以及Computed、Watch监听

html通过CDN引入Vue使用Vuex以及Computed、Watch监听 近期遇到个需求&#xff0c;就是需要在.net MVC的项目中&#xff0c;对已有的项目的首页进行优化&#xff0c;也就是写原生html和js。但是咱是一个写前端的&#xff0c;写html还可以&#xff0c;.net的话&#xff0c;开发也…

dell r720远程网络安装ubuntu20.04(无U盘)

登陆后界面&#xff0c;在主界面上&#xff0c;我们就可以看到各个硬件组件的状态。在快速启动任务栏中&#xff0c;可以对系统电源进行操作&#xff0c;如开机、关机等。安装操作系统&#xff0c;在虚拟控制台预览处点击>启动 按照浏览器出现的提示确定安装控件等&#x…

西南科技大学数字电子技术实验四(基本触发器逻辑功能测试及FPGA的实现)FPGA部分

实验目的1、掌握基本RS触发器、集成D触发器和JK触发器的逻辑功能及测试方法。 2、熟悉D触发器和JK触发器的触发方法。 3、熟悉用JK和D触发器构成其他功能触发器的方法。 4、学会用FPGA实现本实验内容。 实验原理1、D触发器 Qn+1 = D 2、JK触发器 3、RS触发器 程序清单(每…

day15_java的网络编程(简述)

计算机网络 一、什么是计算机网络 把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统&#xff0c;从而使众多的计算机可以方便地互相传递信息&#xff0c;共享硬件、软件、数据信息等资源。 二、计算机网络主要功能 资源共享 信息…

SpringBoot整合RocketMQ,高手都是这么玩的!

今天我们来讨论如何在项目开发中优雅地使用RocketMQ。本文分为三部分&#xff0c;第一部分实现SpringBoot与RocketMQ的整合&#xff0c;第二部分解决在使用RocketMQ过程中可能遇到的一些问题并解决他们&#xff0c;第三部分介绍如何封装RocketMQ以便更好地使用。 1. SpringBoo…

微信小程序、uniapp选择器,包含一级,二级级联,三级级联

效果预览&#xff1a; 已知问题: 不能与页面下拉一起使用 滑动选择后,scroll-view指定scrollTop时,scrollview滚动会有500ms左右的延迟(官方help),现在加了个loaing 参数说明: show(类型:Boolean,默认 false):控制组件显示隐藏 list(类型:Array):选择器绑定的数据 type(类型…

我的网站服务器被入侵了该怎么办?

最近有用户咨询到德迅云安全&#xff0c;说自己再用的网站服务器遇到了入侵情况&#xff0c;询问该怎么处理入侵问题&#xff0c;有什么安全方案可以解决服务器被入侵的问题。下面&#xff0c;我们就来简单讲下服务器遇到入侵了&#xff0c;该从哪方面入手处理&#xff0c;在预…

pandas 使用方法(1)

目录 1. excel 表格处理 (1) 读取excel 表格 (2) 抽取excel表部分列数据 (3) 保存数据到excel表格 (4) 保存到 excel 表中的不同sheet 2. 判断二维数组中的某个数值是否为空 3. 删除二维数组中的空行 4. 在列表中添加某列属性 本文是将使用pandas过程中遇到的问题进行了…

SpringDataJPA基础

简介 Spring Data为数据访问层提供了熟悉且一致的Spring编程模版&#xff0c;对于每种持久性存储&#xff0c;业务代码通常需要提供不同存储库提供对不同CURD持久化操作。Spring Data为这些持久性存储以及特定实现提供了通用的接口和模版。其目的是统一简化对不同类型持久性存储…

基于Java SSM框架实现个性化影片推荐系统项目【项目源码+论文说明】

基于java的SSM框架实现个性化影片推荐系统演示 摘要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;个性化影片推荐系统当然也不能排除在外。个性化影片推荐系统是以实际运用…

【Citespace】从Citespace开始的引文可视化分析

CiteSpace 译“引文空间”&#xff0c;是一款着眼于分析科学分析中蕴含的潜在知识&#xff0c;是在科学计量学、数据可视化背景下逐渐发展起来的引文可视化分析软件。由于是通过可视化的手段来呈现科学知识的结构、规律和分布情况&#xff0c;因此也将通过此类方法分析得到的可…

经典目标检测YOLO系列(一)引言_目标检测架构

经典目标检测YOLO系列(一)引言_目标检测架构 一个常见的目标检测网络&#xff0c;其本身往往可以分为一下三大块&#xff1a; Backbone network&#xff0c;即主干网络&#xff0c;是目标检测网络最为核心的部分&#xff0c;backbone选择的好坏&#xff0c;对检测性能影响是十…

Jol-分析Java对象的内存布局

Jol-分析Java对象的内存布局 Open JDK提供的JOL(Java Object Layout)工具为我们方便分析、了解一个Java对象在内存当中的具体布局情况。本文实验环境为64位HotSpot虚拟机。 Java对象的内存布局 Java的实例对象、数组对象在内存中的组成包括&#xff1a;对象头、实例数据和内存…

一键优化工具,十分不错的win7、win10系统优化的工具,可以帮助用户轻松快速优化系统,供大家学习研究参考~

主要功能 01、禁用索引服务 02、禁止window发送错误报告 03、禁用"最近使用的项目” 04、关闭Windows Defender 05、关闭防火墙 06、检查更新而不自动下载更新 07、启动电源计划“高性能” 08、调整电源选项 09、禁用休眠(删除休眠文件) 10、开启快速启动 11、…

【lesson3】数据库表的操作

文章目录 创建修改修改表名增加表类型修改表的某一类型的类型修改表某一类型的类型名 删除删除表的某一列删除表 查看查看表信息查看表内容 创建 建表指令&#xff1a; 查看是否建表成功&#xff1a; 查看表的具体信息&#xff1a; 修改 修改表名 法一&#xff1a;修改…