蓝桥杯真题:abcdefghijklmnopqrs循环106次,重复删奇数位字符,最终剩下的字符?

奇数位丢弃(C++、Python) 对于一个由0…n的所有数按升序组成的序列,我们要进行一些筛选,每次我们取当前所有数字中从小到大的第奇数位个的数,并将其丢弃。重复这一过程直到最后剩下一个数。请求出最后剩下的数字。输入描述: 多组数据,每组数据一行一个数字,为题目中的n(n 阅读详情

晚上有群友出题:

abcdefghijklmnopqrs循环106次,组成新的2014个字符的字符串,然后删掉奇数位的字符,再次组成新的字符,在删掉奇数字符,最后剩下一个字符,这个字符是啥


先用笨办法,模拟每一次删除操作,直到只剩下最后一个值

第一个元素的索引是0,本来应该依次删除 2,但是删了0之后,所有的位置都往前移了一位,所以接下来要删除的索引是1。所以i只需要自增1。

import java.util.*;
public class Test {
    public static void main(String[] args){        
        List<Character> list = new ArrayList<Character>();
        String s = "abcdefghijklmnopqrs";
        for(int i = 1; i <= 106; i++){
            for(int j = 0; j < s.length(); j++){
                list.add(s.charAt(j));
            }
        }
        long start = System.nanoTime();
        while(list.size() > 1){            
            for(int i = 0; i < list.size(); i++){
                list.remove(i);            
            }
        }
        System.out.println("用时:" + (System.nanoTime() - start) + "纳秒");
        System.out.println(list.get(0));
    }
}
------Output------

用时:1711791纳秒
q


上面是最笨的办法,List的查找和删除消耗了大量时间。改进了一下思路:

原始的索引是:
0 1 2 3 4 5  6  7  8  9 10 11 12.......
删了一次后,索引是:
1 3 5 7 9 11 13 15 17 19...........
再删,索引是:
3 7 11 15 19.....
继续删,索引是:
7 15 .....
当删得只剩下一个数时,是最终结果。而这个唯一的数,同时也是剩下的第一个数,所以可以找第一个数的索引有什么规律。
0*2+1=1,1*2+1=3,3*2+1=7....
这样一直找下去,直到找出最后一个小于2014的值,就是最后剩下的索引值。

public class T3{
    public static void main(String[] args){
        String s = "abcdefghijklmnopqrs";
        StringBuilder sb = new StringBuilder();
        for(int i = 1; i <= 106; i++){
            sb.append(s);
        }
        //下面开始查找
        long start = System.nanoTime();
        int t = 0;
        while((t*2+1)<= 2014){
            t = t*2+1;
        }
        System.out.println((System.nanoTime()-start) + "纳秒");
        System.out.println(sb.charAt(t));
    }
}
------Output------

3421纳秒
q


做完又百度了一下,发现有位大神更牛:

就是第1024位置的字母"q"
第一次留下的是2的倍数,第二次留下的是4的倍数,第三次就是8的倍数。

代码的话,只要一句话。

return ('a' + 1024%19-1);

这位大神的想法前半部分和我是一样的,只是他从1开始编号,而我从0开始编号。后面取出字母的方法更简单直接,佩服。

基于MicroPython的ESP32与微信小程序MQTT通信实战 本文详细介绍了基于MicroPython的ESP32与微信小程序通过MQTT协议实现远程控制的完整实战方案。项目利用巴法云作为免费MQTT服务器,提供了从设备端编程、小程序开发到通信调试的全流程指南,帮助开发者快速构建低成本、易上手的物联网应用,如智能开关、传感器监控等。 阅读详情

相关推荐

计算机视觉研究方向有哪些?什么方向最好出论文创新点

计算机视觉(CV)是人工智能中一个活跃且应用广泛的研究领域,旨在让计算机理解和处理图像与视频。其主要研究方向包括图像分类、目标检测、图像分割、姿态估计、图像生成与重建、视频理解、三维视觉和跨模态视觉理解。这些方向不仅涉及基础理论,还紧密联系实际应用,适合发表论文和实现项目落地。为了在CV领域取得创新,建议关注跨模态学习、小样本学习、图像生成模型的控制与轻量化、视频分析以及医学图像分析等方向。此外,通过阅读顶会论文、复现SOTA方法、模型微调和数据集创新等方式,可以有效切入研究并产生有价值的成果。

OpenCVtuxiang的博客 3549

蓝桥杯真题:abcdefghijklmnopqrs循环106次,重复删奇数位字符,最终剩下的字符?...

晚上有群友出题: abcdefghijklmnopqrs循环106次,组成新的2014个字符的字符串,然后删掉奇数位的字符,再次组成新的字符,在删掉奇数字符,最后剩下一个字符,这个字符是啥 先用笨办法,模拟每一次删除操作,直到只剩下最后一个值 第一个元素的索引是0,本来应该依次删除 2,但是删了0之后,所有的位置都往前移了一位,所以接下来要删除的索引是1。所以i...

dlxqlig0806的博客 462

Keil MDK打开别人工程总报错?手把手教你修复‘找不到main.o’和‘未定义’的路径问题

本文详细解析Keil MDK工程移植时常见的'找不到main.o'和'未定义'编译错误,提供从路径修复到宏定义配置的完整解决方案。通过系统化的检查清单和预防措施,帮助开发者快速解决MDK工程迁移问题,提升嵌入式开发效率。

weixin_28724661的博客 399

Python: 猜字母

把 abcd...s 共19个字母组成的序列重复拼接 106 次,得到长度为 2014 的串。第 1 个字母(即开头的字母 a),以及第 3 个,第 5 个等。得到的新串再进行删除奇数位置字母的动作。

qq_65144447的博客 726

ADS 2024实战:手把手教你搞定2.3-3.5GHz宽带Doherty功放仿真与版图(附源文件)

本文详细解析了在ADS 2024环境中实现2.3-3.5GHz宽带Doherty功放的全流程设计,包括仿真与版图实现。从软件环境搭建、器件模型导入到核心电路设计、匹配网络优化,再到系统集成与版图生成,提供了实战技巧和关键参数设置。特别针对5G通信和卫星应用中的高效率需求,展示了如何通过ADS 2024的新功能提升设计效率。

weixin_42639246的博客 461

共封装光学(CPO):下一代互联革命

Nvidia:产品:Quantum-X Q3450(115.2T,144×800G,2025H2上市)、Spectrum 6800(409.6T,512×800G,2026H2上市);技术路线:TSMC COUPE封装、MRM调制器、光栅耦合、外部激光源(Lumentum/Ayar Labs供应);战略定位:以横向扩展CPO验证供应链,最终聚焦纵向扩展场景(Feynman架构)。

存储随笔 4965

蓝桥杯——排列序数

标题: 排列序数X星系的某次考古活动发现了史前智能痕迹。 这是一些用来计数的符号,经过分析它的计数规律如下: (为了表示方便,我们把这些奇怪的符号用a~q代替)abcdefghijklmnopq 表示0 abcdefghijklmnoqp 表示1 abcdefghijklmnpoq 表示2 abcdefghijklmnpqo 表示3 abcdefghijklmnqop 表示4 abcdefghij...

qq_40339331的博客 567

python调用hypermesh调用tcl_TclTk如何调用HyperMesh运行tcl脚本文件

#Tcl/Tk编写界面部分set t [toplevel .tp]focus $tgrab $tset Filename "E:/CAE_Tech/process_files/88/Example.tcl"set Font "Times 12 bold"wm title $t "Call HyperMesh"wm attribute $t -topmost 1wm withdraw $tset t...

weixin_39541681的博客 1600

ABCDEFGHIJKLMNOP的真正意思

ABCDEFG是什么意思? 男孩回答:A boy can do everything for girl (一个男孩能为女孩做任何事情)。 女孩很感动。 有人告诉她别忘了后面还有HlJK :He is just kidding!(他只是在开玩笑)。 女孩回答:就算他骗我也没关系,后面还有LMNOP:Love must need our patience.(爱必须有耐心) ...

5145

将pytroch模型转为paddlelite模型并集成到android程序中

在android中使用paddlelite加载yolov5模型识别opencv读取的摄像头信息

qq_56460466的博客 1555

Linux下OpenFire+Spark即时通讯环境搭建全攻略(含证书错误解决方案)

本文提供了一份详尽的Linux环境下OpenFire服务器与Spark客户端即时通讯系统的搭建与配置全攻略。内容涵盖从环境规划、服务端部署、数据库配置到客户端连接的全流程,并重点解决了Spark连接时常见的证书验证错误问题,为企业构建私有化、高可用的XMPP通讯平台提供了实战指导。

weixin_29251131的博客 165

2026秋招C语言嵌入式笔试面试题

C语言笔试

weixin_44747201的博客 1万+

学Simulink--决策规划场景实例:基于Simulink的智能车辆行为决策仿真

本文基于Simulink平台构建智能车辆变道决策仿真系统,采用MOBIL算法实现"决策-规划-执行"全流程。系统包含自车动力学模型、环境感知模块(含5%噪声)、决策控制器和轨迹规划模块,通过五次多项式实现平滑变道。仿真验证了三种典型工况:正常变道(成功率100%)、邻车拒绝让行和紧急避障,各项指标均满足要求(TTC>3s,横向加速度<2m/s²,决策周期<100ms)。文章详细介绍了建模步骤、核心算法实现和参数配置方法,并提出了强化学习、多车协同等优化方向。该模型为智能

amy_mhd的博客 153

C语言日常作业|删除字符数组中Ascii值为奇数的字符,剩余字符存放在另一数组

#include<stdio.h> void main() { char a[100],b[100],*p1,*p2; gets(a); p2=b;//p2指针指向数组b的首地址 for(p1=a;*p1!='\0';p1++)//'\0'是字符串的结束符号,这里代表循环到最后一位元素 { if((*p1)%2==0)//无余数则为偶数,进行赋值到b数组 *p2++...

纸鱼PaperFish的博客 1232

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

135.删除字符串中字符ASCII为奇数的数。

函数fun的功能是:将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新的串放在t所指的数组中。 #define _CRT_SECURE_NO_WARNINGS #include #include void fun(char *s, char t[]) { int i = 0, j = 0; while (s[i]) { if (s[i] % 2 == 0)

u012814404的专栏 3827

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

蓝桥杯题目:标题:猜字母 把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。 接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位

其中列出一些我觉得比较处理得好的点子(本人是菜鸡轻点喷) class Main { static int thesum = 0; public static void main(String args[]) { StringBuffer temp = new StringBuffer("abcdefghijklmnopqrs"); StringBuffer data = new ...

weixin_45329792的博客 1499

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

笔试题-奇数位丢弃

题目名称:奇数位丢弃 题目描述 对于一个由0..n的所有数按升序组成的序列,我们要进行一些筛选,每次我们取当前所有数字中从小到大的第奇数位个的数,并将其丢弃。重复这一过程直到最后剩下一个数。请求出最后剩下的数字。 输入描述: 每组数据一行一个数字,为题目中的n(n小于等于1000)。 输出描述: 一行输出最后剩下的数字。 输入例子: 500

sinat_33179560的博客 1836

字符串筛选:编写函数fun,其功能是将字符串s下标为奇数的字符删除,字符串中剩余字符形成的新字符串放在数组t中。

2.编写函数fun,其功能是将字符串s下标为奇数的字符删除,字符串中剩余字符形成的新字符串放在数组t中。 主函数中输入字符串s,调用函数,输出字符数组t。 输入说明:共一行,输入字符串s 输出说明:共一行,输出字符串t 输入示例:abcd1234 输出示例:ac13 #include <stdio.h> #include <string.h> char fun(char s[]) { int n, i; n = strlen(s); for (i = 0; i.

RPG 8729

C语言散列法求英文字母字符串求余,C语言基础算法案例(初级)

本人QQ:2589989400不管是自学新手还是学习很久的老手都可以加我交流学习哦。1、C语言打印一条语句源代码:#includeint main(){printf("C Programming");return 0;}输出:C Programming2、C语言打印用户输入的一个整数源代码:#includeint main(){int num;printf("Enter a integer: ")...

weixin_28750369的博客 346

算法题(拼字母)

题目 样例 解题思路 1、 这是水题,还是需要注意Ascii码的使用,和之前文章小仙女的烦恼是一种类型的题。 2、 注意一下定义最大值的方法,int max=Integer.MAX_VALUE;以及后面判断语句的格式。 参考代码 package Test; import java.util.Scanner; public class e { public static void main...

悲伤的小霉的博客 291

2016年6月2日 几乎是强迫自己在更新 关于python的多线程处理

老生常谈的东西这是我这段代码的第21次更新了,依然不能实现全部的设计需求然而都这个点儿了,先睡吧欠下的债,早晚都要还的try: import sys import time import os import platform import threading #os.chdir('../res') #sys.path.append(os.get

DreaM_Jay的博客 989

猜字母python实现

文章目录问题思路及代码 问题 把abcd…s共19个字母组成的序列重复拼接106次,得到长度为2014的串。 接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。 得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。 思路及代码 循环这个长度为2014的串,然后按照索引删除即可,pop or del,删除不知道为啥报错,所以该换为添加偶数位数,也就是奇数位索引 a = 'abcdefghijklmnopqrs' a = list(a*106) b

厚积而薄发 1026

c语言中删除数组中奇数,在c中删除数组中的偶数

假设您已经动态分配了n个元素的数组并对其进行了初始化。在这种情况下,删除具有偶数值的元素的函数可以采用以下方式size_t remove_even( int *a, size_t n ){size_t m = 0;for ( size_t i = 0; i < n; i++ ){if ( a[i] % 2 != 0 ){if ( i != m ) a[m] = a[i];++m;}}retu...

weixin_29198045的博客 3828

猜字母c语言蓝桥杯,蓝桥杯——猜字母

问题描述:字母序列a,b,c,...,p,q,r,s共19个字母,现重复该字串106次,形成一个有2014字符的字串,将奇数位的字符删除,重复此操 作,直至剩下最后一个字母,问剩下的字母是什么?答案必须是小写字母。方法解答:此题目既可以用数学方法解答,也可编程实现。数学方法:首先来看,数字1,2,3,...,8,9,10,经第一次删除后剩下的为2,4,6,8,10,再删除一次...

weixin_39543478的博客 328

LeetCode 1578. 避免重复字母的最小删除成本

文章目录1. 题目2. 解题 1. 题目 给你一个字符串 s 和一个整数数组 cost ,其中 cost[i] 是从 s 中删除字符 i 的代价。 返回使字符串任意相邻两个字母不相同的最小删除成本。 请注意,删除一个字符后,删除其他字符的成本不会改变。 示例 1: 输入:s = "abaac", cost = [1,2,3,4,5] 输出:3 解释:删除字母 "a" 的成本为 3,然后得到 "abac"(字符串中相邻两个字母不相同)。 示例 2: 输入:s = "abc", cost = [1,2,3]

Michael是个半路程序员 1207

1~N不断去掉奇数项剩下的数

由于是不断去掉奇数项,保留偶数项,那么最后剩下的那个数的因子2数目一定最多,那么只要计算2^k <= N < 2^(k+1),剩下的那个数就是2^k

a13602955218的博客 2663
上一篇: 什么是随机访问?
下一篇: 位运算的几点用处
KingLearnJava
博客等级 码龄12年 93粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值