CSDN编程竞赛-第六期(下)
CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16
努力是为了让自己不平庸:
前言/背景
四道题都是相关字符串的,思路很好想,但是需要熟练使用,不能有小错误。
大赛简介
有很多的实体奖励
参赛流程
活动时间:9月8日-21日(竞赛时间截止9.18) 竞赛考试时间:9月18日 8:30-11:00(作答时间2小时) 获奖名单公布:9月23日,在本页面公布获奖名单链接 获奖用户信息收集:9月27日 奖品发放:9月30日后7个工作日内
参赛经历
早起,提前洗漱完毕,等待竞赛开始就直接进入
三、收件邮箱
题目
已知字符串str,str表示邮箱的不标准格式。 其中”.”会被记录成”dot”,”@”记录成”at”。 写一个程序将str转化成可用 的邮箱格式。(可用格式中字符串中除了开头结尾所有”dot”,都会被转换,”at”只会被转化一次,开头结尾的不转化)
解题思路
因为是转换网站字符串,所以很容易就想到了java字符串里的contains函数和replace函数 先判断字符串是否含有“at”如果有就用replace把at替换为“@”,在判断是否含有“dot”如果有就用replace把at替换为“.”然后输出str
代码
package text;
import java.util.Scanner;
public class Three {
public static void main(String[] args) {
String str;
Scanner sc=new Scanner(System.in);
str=sc.next();
if(str.contains("at")){
str=str.replace("at","@");
}
if(str.contains("dot")){
str=str.replace("dot",".");
}
System.out.println(str);
}
}
运行结果
四、最长递增的区间长度
题目
给一个无序数组,求最长递增的区间长度。如:[5,2,3,8,1,9] 最长区间 2,3,8 长度为 3
解题思路
先定义一个数组将输入的数存入数组里,因为是递增,计算前一个数比后一个数比较小的次数,每次循环计数加1,如果前一个数比后一个数比较大,则结束本次计算,拿计数和结果比较如果比它大就把计数赋值结果,重新开始计数,直到数组轮完,因为我们计算的是比较次数,题中要的是长度,所以在输出的时候结果还需要加1
代码
#include <stdio.h>
#include <string.h>
int main() {
int n;
int count = 0;
int result = 0;
scanf("%d", &n);
int a[n];
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
for (int i = 0; i < n; i++) {
count++;
if (a[i] > a[i + 1])
count = 0;
if (count > result) {
result = count;
}
}
printf("%d", result + 1);
return 0;
}
运行结果
经验心得
要多多练习,多多刷题,熟练的使用算法。
总结
本次竞赛重在练习字符串,希望大家熟练掌握字符串的用法
相关文章
- uart串口通信编程_verilog调用模块端口对应方式
- CSDN 编程竞赛·第六期总结
- 编程的基本概念如何用生活化的方式理解?
- 清华软件论坛 | DeepMind研究科学家李宇佳分享“AlphaCode:编程竞赛级的程序自动生成”
- Socket编程基础-Socket编程基础-示例
- 时间无极限:C语言 Linux计时编程(clinux计时)
- Linux 驱动编程:初学者的入门指南(linux驱动入门)
- 深入浅出:MongoDB编程指南(mongodb推荐书籍)
- Linux内核编程进阶:深入理解内核机制(linux内核编程进阶)
- (jQuery,mootools,dojo)使用适合自己的编程别名命名
- python网络编程学习笔记(三):socket网络服务器
- python多线程编程中的join函数使用心得