当前位置: 首页 > news >正文

SCAU高程进阶题(自用)

18711 字符串去重

Description
一个完全由小写字母组成的长度为n的字符串,现在要求你去除所有重复的字母,并将剩下的字母按从小到大的次序输出。
如输入baaadccaab,输出abcd。

输入格式
第一行一个整数n,表示字符串长度(0<=n<=100000)。
第二行一个字符串。

输出格式
去除所有重复的字母,并将剩下的字母按ASCII码从小到大的次序输出。

输入样例
10
baaadccaab

输出样例
abcd

#include <stdio.h>
#include <string.h>int main()
{int n;scanf("%d",&n);char ch[n],ans[26];//getchar()和gets(s)连用,为了消除前一个输入的回车导致gets(s)无法输入的问题getchar();gets(ch);long len = strlen(ch);for(int i=0;i<len;i++){ans[ch[i]-'a']=ch[i];}for(int i=0;i<len;i++){if(ans[i]!='\0')printf("%c",ans[i]);}return 0;
}

18410 最后一张纸片


有N张(N不超过1000)纸片,每张纸片上有一个数字从1至N,最初N张纸片按由大到小顺序叠放(编号最大的在最下面),现在不断重复执行如下操作:
(1)将最上面的一张放到最下面;
(2)再将最上面的一张放到最下面;
(3)将当前最上面的一张拿走;
重复上面操作(1)(2)(3)(1)(2)(3)(1)......
直到剩下最后一张纸片,输出该纸片上的编号
输入格式
一个正整数N
输出格式
剩下的最后一张纸片编号
输入样例
3
输出样例
2
提示:N=3时,每列表示一次操作后的纸片排列情况
1 2 3 1 2 1 2
2 3 1 2 1 2
3 1 2
 

#include <stdio.h>
#include <string.h>int main()
{int n;scanf("%d",&n);int arr[n],s=n;//倒序输入for(int i=0;i<n;i++){arr[i]=s;s--;}//每次遍历都将要抽出的那一张放到数组的末尾//最终剩下的那一张就是数组第一个元素for(int i=n-1;i>0;i--){//先把第一个放到最后for(int j=i;j>0;j--){int temp=arr[j];arr[j]=arr[j-1];arr[j-1]=temp;}//再把第二个放到最后(重复上述代码)for(int j=i;j>0;j--){int temp=arr[j];arr[j]=arr[j-1];arr[j-1]=temp;}//将最上面那一张拿走arr[i]='\0';}printf("%d",arr[0]);return 0;
}

不要bad

Description
由键盘输入一行字符(最多不超过80个字符,以回车结束),要求编程实现删除该行字符中的“bad”(小写),输出处理后的结果(结果不含bad)。

输入格式
一行字符

输出格式
不含“bad”的结果

输入样例
abadnewsisgoodnews,andbadisnotBad

输出样例
anewsisgoodnews,andisnotBad
注意特殊情况例如:ababadde

#include <stdio.h>
#include <string.h>int main()
{char ch[81];gets(ch);int len=strlen(ch);for(int i=0;i<len-3;i++){//将bad位置置为空if(ch[i]=='b' && ch[i+1]=='a' && ch[i+2]=='d'){ch[i]='\0';ch[i+1]='\0';ch[i+2]='\0';//将后续元素向前补齐for(int j=0;i+j+3<len;j++){ch[i+j]=ch[i+3+j];ch[i+3+j]='\0';}//从头检测i=-1;}}for(int i=0;i<len;i++){printf("%c",ch[i]);}return 0;
}

分解质因数

读入一个数n,输出1到n所有数分解成质因数之积的形式,格式见参考样式

Such us: n=10;

输出:

1=1

2=2

3=3

4=2*2

5=5

6=2*3

7=7

8=2*2*2

9=3*3

10=2*5

一个数除以从2开始的循环,如果==1,结束,!=1,继续循环

#include <stdio.h>int main()
{int n;scanf("%d",&n);printf("1=1\n");for(int i=2;i<=n;i++){printf("%d=",i);int k=i;for(int j=2;j<=n;j++){int flag=0;if(k%j==0){printf("%d",j);k/=j;flag=1;j=1;}if(k==1){break;}else if(flag==1){printf("*");}}printf("\n");}return 0;
}

http://www.lryc.cn/news/512157.html

相关文章:

  • 基于STM32F103控制L298N驱动两相四线步进电机
  • libreoffice在Windows和Linux环境的安装和结合Springboot使用教程
  • 前端开发 -- 自动回复机器人【附完整源码】
  • vue+echarts实现疫情折线图
  • 服务器nfs文件共享
  • 基于Vue+SSM+SpringCloudAlibaba的科目课程管理系统
  • vue3配置caddy作为静态服务器,在浏览器地址栏刷新出现404
  • 深入理解委托:C# 编程中的强大工具
  • 【Java 数据结构】合并两个有序链表
  • 基于微信小程序的校园访客登记系统
  • uniapp 判断多选、选中取消选中的逻辑处理
  • php8.0版本更新了哪些内容
  • Browser Use:AI智能体自动化操作浏览器的开源工具
  • Android笔记(四十):ViewPager2嵌套RecyclerView滑动冲突进一步解决
  • POS系统即销售点系统 文档与数据库设计
  • 安全合规遇 AI 强援:深度驱动行业发展新引擎 | 倍孜网络CEO聂子尧出席ICT深度观察报告会!
  • 算法进阶:贪心算法
  • C++ 设计模式:工厂方法(Factory Method)
  • 手机联系人 查询 添加操作
  • 【LeetCode】2506、统计相似字符串对的数目
  • 金仓数据库对象访问权限的管理
  • Qt 中实现系统主题感知
  • Modbus TCP 报文说明
  • 音视频入门基础:MPEG2-TS专题(24)——FFmpeg源码中,显示TS流每个packet的pts、dts的实现
  • 大模型:OneFitsAll、Time - LLM、LLaTA
  • 连锁餐饮行业数据可视化分析方案
  • Ubuntu 下使用命令行将 U 盘格式化为 ext4、FAT32 和 exFAT 的详细教程
  • 多说话人ASR的衡量指标和有效计算工具包
  • 英伟达(NVIDIA)
  • 【环境配置】Jupyter Notebook切换虚拟环境