牛客.字符串替换​编辑神奇数牛客DNA序列牛客.kotori和气球

news/2024/10/15 8:13:46/

目录

牛客.字符串替换​编辑

神奇数

牛客DNA序列

牛客.kotori和气球


牛客.字符串替换

import java.util.*;public class StringFormat {public String formatString(String A, int n, char[] arg, int m) {
//这里是使用了StringBuffer来去接受这个StringBuffer ret=new StringBuffer();char[]s=A.toCharArray();int j=0;for(int i=0;i<n;i++){
//有可能最后一个只是%,并没有s,不是百分号,我们就把对应的添加进去if(s[i]!='%'){ret.append(s[i]);}else{
//假如后面碰巧还遇上了s,那么就说明是%s,此时你就需要在ret添加arg的值,然后再去++,if(i+1<n&&s[i+1]=='s'){ret.append(arg[j++]);
当我们添加之后,需要++因为 这个是%下个是s,我们都把她给跳过了。i++;}else{
如果%后面不是s,其实没有这个可能不写也行ret.append(s[i]);}}}
//不用思考下标的关系,而是直接添加会省很多麻烦
//假如j<m 也就是说没有遍历完全,我需要把剩下的添加到ret里面while(j<m){ret.append(arg[j++]);}return ret.toString();}
}

我初始想法,是转换成数组,在用另一个数组去接收她,这也就导致,我需要在里面考虑非常多的下标问题,这也给我带来很多苦恼,所以在最后一个样例中,我卡住了,我如果花费些许时间,或许能想出来,但是一个好的方法是优于你的思考的

神奇数

我们首先是要关注每一位的关系,

细节: 1.用i来表示十位,j来表示各位,并且i不可以为0,因为不可以出现前导0,

          2. i!=j的 

2.判断是否是质数;试除法

从2开始到n(因为1不是质数) (2-根号n)闭区间,这个代码的逻辑结构比我想的好很多,写的十分清晰,我就想着都放到一起,这也导致,我的代码看起来复杂,并且冗余

import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {//判断是否是质数public static boolean isprim(int x){if(x<2){return false;}else{for(int i=2;i<=Math.sqrt(x);i++){if(x%i==0)return false;}return true;}}//判断是否是神奇数public static int check(int x){//让他绝对够存储int []num=new int[10];int n=0;while(x!=0){num[n]=x%10;x=x/10;n++;}//枚举十位数for(int i=0;i<n;i++){//枚举个位数for(int j=0;j<n;j++){if(num[i]!=0&&i!=j){if(isprim(num[i]*10+num[j])){return 1;}}}}return 0;}public static void main(String[] args) {Scanner in = new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别int a = in.nextInt();int b = in.nextInt();int ret=0;//取max的原因,因为1,2,3这种都是个位数,绝对不可能是神奇数for(int i=Math.max(a,10);i<=b;i++){ret+=check(i);}System.out.println(ret);}
}

牛客DNA序列

我掏他猴子的很奇怪啊,玛多笔试强训里面没这么多说明,根本看不懂,还没有那个数字,痛苦,还好回来,看了题解明白了啥意思,肯定是滑动窗口我知道。但是我的失误地方,他给的比率很迷惑我,我没想到可以不求比率,而是直接就去获取CG数量,根本不用除别的,因为如果CG的数量越多,他的长度是固定的,那么他的比率就越大

import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别String aa = in.nextLine();int n = in.nextInt();int count = 0;int maxCount = 0;char[]a = aa.toCharArray();int left = 0;
//这里begin的来标记目标序列的开头int begin = 0;
//这个right作为窗口int right = 0;//滑动窗口while (right < a.length) {if (a[right] == 'C' || a[right] == 'G')count++;
//当我们窗口过大的时候,需要移动窗口,即把left指针,像右移动,假如原本是c或者g那么,你需要进行更改。while (right - left + 1 > n) {if (a[left] == 'C' || a[left] == 'G') {count--;}left++;}
//假如等于来,我们只需要保存开始的值,因为他给了目标序列的长度,所以输这么长即可if (right - left + 1 == n) {if (count > maxCount) {begin = left;
//看一看符合要求的序列的长度够不够maxCount = count;}}right++;}for (int i = begin; i < begin + n; i++) {System.out.print(a[i]);}}}

牛客.kotori和气球

n种*(n-1)(n-1)...一个循环即可,但是每次乘完就要对109去模

import java.util.*;
public class Main{public static void main(String[]args){Scanner in=new Scanner(System.in);int n=in.nextInt();int m=in.nextInt();int ret=n;for(int i=0;i<m-1;i++){ret=ret*(n-1)%109;}System.out.print(ret);}
}


http://www.ppmy.cn/news/1539348.html

相关文章

go+bootstrap实现简单的注册登录和管理

概述 使用&#xff0c;gomysql实现了用户的登录&#xff0c;注册&#xff0c;和管理的简单功能&#xff0c;不同用户根据不同权限显示不同的内容 实战要求&#xff1a; 1、用户可以注册、登录&#xff1b; 2、登录后可以查看所有的注册的用户&#xff1b; 3、管理员操作对用…

web 0基础第四节 多媒体标签

图片标签 主要是讲解 在html 中 怎么将图片放入其中 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <…

Spring Boot洗衣店订单系统:数据驱动的决策

3系统分析 3.1可行性分析 通过对本洗衣店订单管理系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本洗衣店订单管理系统采用JAVA作为开发语言&#xff0c;S…

自己用react开发了一张Es6的学习页面(持续更新系列)

代码块&#xff1a; import React from react; import ./Es6Review.css;const Es6Review: React.FC () > {return (<div className"container"><div className"header"><h1>ES6 知识点复习</h1><h2>重要特性及应用<…

[蓝桥杯 2017 省 B] 日期问题

小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在 1960 年 1 月 1 日至 2059 年 12 月 31 日。令小明头疼的是&#xff0c;这些日期采用的格式非常不统一&#xff0c;有采用年/月/日的&#xff0c;有采用月/日/年的&#xff0c;还有采用日/月/年…

std::vector 小问题记录,使用注意事项!!

这是一段有问题的代码&#xff0c;从运行上来看没什么问题。这里的vecotr 容器明显的被滥用了。26行声明了新的容器变量 tiles并把cells的数组变量复制给了 tiles; 这里就发生了很多不必要的浪费&#xff01;vector是可扩容容器&#xff0c;会根据元素数量的大小&#xff0c;自…

【C++ 算法进阶】算法提升二

算法提升二 最大分配工资问题 &#xff08;贪心&#xff09;题目分析代码详解 数组有序问题 &#xff08;贪心&#xff09;题目分析代码详解 消息流问题 &#xff08;数据结构设计&#xff09;题目分析代码详解 可乐问题 &#xff08;Coding能力&#xff09;题目分析代码详解 司…

PCL 渐进式形态学滤波

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 如果不太了解点云数学形态学的基本理论,可以先阅读这篇文章:https://blog.csdn.net/dayuhaitang1/article/details/123172437。形态学中的窗口结构一直存在着这样的问题:如果窗口结构元尺寸过小,则无法去除一些…