字符移位笔试题

腾讯暑期实习生笔试题复盘:构造回文、字符移位与有趣的数字 算法面试中,动态规划和字符串处理是高频考点,而大厂笔试往往通过看似基础的题目考察候选人对问题本质的理解。例如,构造回文问题本质是最长回文子序列(LPS),可通过逆序串LCS或区间DP求解;字符移位则考察稳定分区思想,需保持同类字符相对顺序;有趣的数字则借助排序将差值问题转化为相邻元素分析。掌握这些通用概念与原理,不仅能应对笔试,更能提升工程实践中的算法设计能力。从LeetCode刷题到牛客网在线笔试,理解边界条件与复杂度优化才是关键。本文以腾讯2017暑期实习生笔试题为例,完整拆解三道经典题目的推导过程、代 阅读详情

问题描述:小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
你能帮帮小Q吗?
这里写图片描述

解决方案1:

/*小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
你能帮帮小Q吗?*/

#include <iostream>
using namespace std;

bool IsCaple (char ch) {
    if (ch >= 'A' && ch <= 'Z') {
        return true;
    }
    else {
        return false;
    }
}

int main (void) {
    string s;
    while(cin>>s) {
        for (int i = 0; i < s.length(); i++) {
            if ( !IsCaple(s[i]) ) {
                cout<<s[i];
            }
        }
        for (int i = 0; i < s.length(); i++) {
            if ( IsCaple(s[i]) ) {
                cout<<s[i];
            }
        }
        cout<<endl;//为了满足多次测试用例,必须有 
    }
    return 0;
}

解决方案2:

#include <iostream>  
#include <string>
using namespace std;

int main(void) {
    string s;
    while (cin>>s) {
        for (int i = 0; i < s.length() - 1; i++) { //冒泡排序的思想 
            for (int j = 0; j < s.length() - 1 - i; j++) {
                if ( (s[j] >= 'A' && s[j] <= 'Z') && (s[j+1] < 'A' || s[j+1] > 'Z') ) { //注意边界条件 
                    char temp;
                    temp = s[j];
                    s[j] = s[j+1];
                    s[j+1] = temp;
                }
            }
        }
        cout<<s<<endl;
    }
}

好未来2019秋招笔试题-测试开发 1、字节变量中1的个数 对于一个字节(8bit)的变量,求其二进制表示中“1”的个数。 输入:10100001 输出:3 可参考,https://blog.youkuaiyun.com/m0_37925202/article/details/80087992,给出了四种解法。 推荐下面的写法: int Count(unsigned char byt) { int num=0; wh... 阅读详情

相关推荐

两个小数相乘,小数点后面位数没有限制,设计一个高精度算法

下面是使用了string库函数的代码,也可以不用标准库函数,是腾讯的一道笔试题: 其中求字符串的长度,可以使用strlen,不用length()函数, 寻找“,”的位置,也可以不用find_last_not_of,而用循环匹配,来确定什么时候输出"." 其中剔除'.',也可

hitthetarget的专栏 2529

[面试算法]把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。

//把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。 void MoveSupperToEndWithOrginOrder( char* szSrc , int nSize ){int nLen = 0;for ( int i= 0; i < nSize; i++ ){//找到下一个大写字母if ( isupper(szSrc[i]) ){//检查大写字母连续的

专心-超越 5311

【荣耀笔试题汇总】2024-05-11-荣耀春招笔试题-三语言题解(CPP/Python/Java)

K小姐是一位热爱编程的软件工程师,她最近在处理一批字符串数据时遇到了一些问题。这些字符串包含了合法和非法字符,合法字符包括数字(0-9)、小写字母(a-z)和大写字母(A-Z)。K小姐需要你帮助她编写一个程序,将这些字符串分类为合法字符串和非法字符串,并去除重复的合法字符串。输入包含多行,每行一个字符串。字符串的总数不超过 100,每个字符串的长度不超过 64。第一行输出所有合法且无重复的字符串,字符串之间用一个空格分隔。第二行输出所有非法的字符串,可能包含重复,同样用一个空格分隔。 样例输出 数据范围

春秋招笔试突围 2494

编程之旅-Day22

目录 Day22-学习内容: 1.剑指Offer 面试题30:包含min函数的栈 面试题57:和为s的数字 面试题57:和为s的连续整数序列 2.Leetcode 例1:插入间隔 例2:最长回文子串 3.2017年腾讯暑期实习编程题-复习 编程题1:构造回文 编程题2:算法基础-字符移位 编程题3:n个数组成的二元组差最小和最大的对数 4.单选题 1.剑指Offer...

linyuhan3232的博客 402

告别MRT!用ArcGIS脚本批量处理MODIS数据,从HDF到NDVI/ET成品图全流程(附Python代码)

本文详细介绍了使用ArcGIS Python脚本自动化处理MODIS数据的全流程,从HDF文件提取到生成NDVI/ET成品图。通过优化子数据集提取、智能镶嵌策略和投影转换等核心步骤,大幅提升处理效率,告别传统MRT工具的手工操作。附带的Python代码可直接应用于实际项目,特别适合批量处理大规模遥感数据。

weixin_30872337的博客 220

DisplayPort 1.4数据扰码实战:16bit LFSR并行优化技巧(附Verilog代码)

本文深入探讨了DisplayPort 1.4协议中16bit数据扰码的并行化实现。针对高带宽视频传输需求,文章详细推导了16位LFSR(线性反馈移位寄存器)的单周期16步并行计算公式,并提供了可直接使用的Verilog代码,解决了传统8bit串行处理吞吐量不足的瓶颈,为高速接口设计提供了关键优化技巧。

y4z5a6b7的博客 259

不申请额外空间调整字符串大小写顺序,大写字母依次放到后面

一道很经典的字符串算法题: 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。 例如 AkleBiCeilD, 调整后应该是 kleieilABCD第一次做的时候写的是类似冒泡的两两交换,时间复杂度是O(n*n),明显当n达到万级的时候就会TLE,是很笨的方法。而且声明了 char t;#include <iostream> #include <cs

永远保持谦卑好学 1557

国密SKF库数字签名全解析:SM2签名与验证的详细实现

本文详细解析了基于国密SKF库实现SM2数字签名与验证的全过程。内容涵盖SKF库环境搭建、设备初始化、PIN码验证、SM2签名生成以及纯软件与SKF库两种验证方式的详细实现,为开发者提供了一份实用的国密算法开发指南。

weixin_29303701的博客 323

把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间

腾讯一面试题,采用冒泡排序的思想,大写字母向后移动,小写字母向前移动,时间复杂度为O(N^2)。 #include #include string.h> #include int main() { char str[100]; while (scanf("%s", str) != EOF) { int n, j; int nLen

不舍驽马 2623

空间节省算法在Rowhammer防御中的应用与优化

空间节省算法(Space-Saving)是一种高效的流式数据处理算法,主要用于在有限内存条件下实时识别数据流中的高频项。其核心原理是通过维护固定大小的计数器表,动态跟踪最活跃的元素,适用于处理无限数据流场景。该算法在内存安全领域具有重要价值,特别是在Rowhammer攻击防御中,能够有效检测异常高频访问的DRAM行地址。通过结合计数器衰减策略(如DSAC)和混合架构设计,空间节省算法可以在保证低硬件开销的同时,提供高精度的攻击检测能力。这些技术已成功应用于现代DDR5内存控制器,展现出优异的工程实践价值。

weixin_31139479的博客 606

STM32F407硬件IIC驱动OLED避坑实录:从‘不显示’到‘稳定刷屏’的完整调试过程

本文详细记录了使用STM32F407硬件IIC驱动OLED屏幕的完整调试过程,从初始的‘不显示’问题到最终实现‘稳定刷屏’。文章涵盖了硬件接线、I2C外设配置、常见问题排查及性能优化技巧,特别针对STM32标准库开发中的难点提供了实用解决方案,是嵌入式开发者驱动OLED屏幕的实用指南。

weixin_30315723的博客 303

leetcode_数组相关问题

283.零移动 给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 思路一:保证非零元素的相对顺序,冒泡排序法,时间复杂度为O(n^2),空间复杂度为O(1) class Solu...

coding 607

MATLAB 与 STK 互联的两种连接方式详解

批量仿真推荐使用方法一;交互分析推荐使用方法二。可以根据具体任务灵活切换,也可以同时使用两种方式,提升建模与仿真的效率。

weixin_52370774的博客 1567

腾讯笔试题 字符移位(字符串操作)

腾讯笔试题 字符移位(字符串操作) 链接:https://www.nowcoder.com/questionTerminal/7e8aa3f9873046d08899e0b44dac5e43来源:牛客网小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。 你能帮帮小Q吗? ...

Y先森0.0 318

基于自抗扰控制的虚拟同步发电机二次调频控制研究

摘要:本文针对高比例可再生能源并网导致的电力系统频率稳定性问题,提出基于自抗扰控制(ADRC)的虚拟同步发电机(VSG)二次调频控制策略。通过分析VSG工作原理和传统调频方法的不足,设计了非线性ADRC和线性ADRC两种控制器,详细阐述了参数整定方法。仿真结果表明,该策略能有效消除频率稳态偏差,提升系统抗扰能力,为分布式电源参与电网调频提供了新思路。 关键词:虚拟同步发电机;自抗扰控制;二次调频;频率调节;抗扰能力

huanghm88的专栏 244

【汇编实战开发笔记】一段汇编代码如何“反编译”成C代码?

介绍了一种由汇编代码得到C代码的方法

一个专注于嵌入式IoT领域的架构师,深耕IoT领域多年,深度掌握IoT领域的相关技术栈,包括但不限于RTOS内核的实现及其移植、硬件驱动移植开发、网络通讯协议开发、编译构建原理及其实现、底层汇编及编译原理、编译优化及代码重构、嵌入式IoT系统的架构设计等。 1万+

面试笔试题--字符移位

面试算法

老王的IT博客 509

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

C语言经典笔试题04-字符数组移位

编写一个函数,作用是把一个char组成的字符串循环右移n个。比如原来为“abcdefghi”,如果n=2,则移位后变为“hiabcdefg” #include <stdio.h> #include <string.h>void LoopMove(char*pStr, char* dst,int moveLen) { int srcLen = strlen(pStr); if(move

Eternal_tyq的博客 642

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

腾讯笔试题 1 算法基础-字符移位

小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。 你能帮帮小Q吗? 输入描述: 输入数据有多组,每组包含一个字符串s,且保证:1 输出描述: 对于每组数据,输出移位后的字符串。 输入例子1: AkleBiCeilD 输出例子1: kleieilABCD 这个题目,只需要从左往右数

baidu_34674626的博客 311

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

腾讯笔试题-算法基础-字符移位

小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。你能帮帮小Q吗?输入描述:输入数据有多组,每组包含一个字符串s,且保证:1&lt;=s.length&lt;=1000. 输出描述:对于每组数据,输出移位后的字符串。输入例子1:AkleBiCeilD 输出例子1:kleieilABCD这道题最主要的是不能申请额外的空间,由于是把大写字母...

weixin_41181915的博客 376

腾讯17年暑期实习生笔试题 - 字符移位

问题小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。你能帮帮小Q吗?输入描述输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.输出描述对于每组数据,输出移位后的字符串。

roamer_nuptgczx的专栏 1694

1010_C/C++笔试题_19:字符串移位包含

本题从《编程之美》上看到的。 1.字符串移位包含问题:给定两个字符串s1和s2,判定s2是否能被s1做循环移位得到字符串包含。 常规解法如下: charsrc[]="AABBCDD";chardes[]="CDAA";intlen=strlen(src);for(inti=0;i<len;i++){chartem...

weixin_33737774的博客 249

【企业笔试题】龙旗控股笔试题解析

龙旗控股笔试题解析龙旗控股笔试题简答题编程题 龙旗控股笔试题 简答题 1.Windows NT下的32位机运行环境下: char str[] = “Welcome to Bit”; int Array[] = {1,2,3,4,5,6,7,8,9}; char *p = str; int n; int func( int a[] ) {} 请计算:strlen(str), sizeof(str), sizeof(Array), sizeof(p), sizeof(n), sizeof(a) strle

宫瑞阳的博客 2149

腾讯 linux 面试题,腾讯2017暑期实习生笔试题解题答案汇总

腾讯2017暑期实习生笔试题解题答案汇总构造回文题目给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数输入描述:输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.输出描述:对于每组数据,输出一个整数,代表最少需要删除的字符个数。输入例子:abcdagoogle输出例子:22解题思路本题...

weixin_34867001的博客 160

编程题—字符移位

内容会持续更新,有错误的地方欢迎指正,谢谢! 题目 小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。你能帮帮小Q吗? 输入描述: 输入数据有多组,每组包含一个字符串s,且保证:1&lt;=s.length&lt;=1000. 输出描述: 对于每组数据,输出移位后的字符串。 例子: 输入:AkleBiCeilD 输出...

陈云佳的专栏 486
上一篇: Win32 SDK 学习笔记2
下一篇: C++ vector用法初步学习
henhaoji_123
博客等级 码龄10年 260粉丝 283原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值