zl程序教程

您现在的位置是:首页 >  后端

当前栏目

CSDN编程竞赛-第六期(下)

编程 竞赛 csdn 第六期
2023-06-13 09:13:11 时间

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;
}

运行结果

经验心得

要多多练习,多多刷题,熟练的使用算法。

总结

本次竞赛重在练习字符串,希望大家熟练掌握字符串的用法