笔试的解题思路很多,

昨天发的笔试题目,留言的人还挺多,这道笔试题目是字节的嵌入式笔试题目,从面试的朋友描述说,对方的面试过程很专业。

现场写代码,

金三银四一直是铁律,去年我一个朋友离职后,也是最近这几天拿到了决定性的offer。

既然面试机会多,如果想看机会,就必须要准备,像这类的字符串变换的笔试题目真不要太多了。

77c7c48ee3b8f7d143a1cee4099d385c.png

昨天的题目,有网友留言说使用字符串反转来完成

3e14de0a9f126033673c51e45e2eb00e.png

我早上陪小孩上篮球课,拿着电脑给大家补充下解答代码

字符串两次翻转的代码实现如下

#include <stdio.h>
#include <stdint.h>
#include <string.h>int string_reverse(char str[], int length)
{char tmp;for (int i = 0; i < length/2; i++) {tmp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = tmp;}
}int main() {char input[] = "welcome to hello world";char *p = NULL;printf("%s\n", input);string_reverse(input, strlen(input));printf("%s\n", input);p = (char*)&input;for (int i = 0, length = 0; i < sizeof(input); i++, length++) {if (input[i] == ' ' || input[i] == '\0') {string_reverse(p, length);p = &input[i];length = 0;}}printf("%s\n", input);return 0;

变换的过程是

9bf015d868f66d4fef38c0621feb71a0.png

但是实际编码的时候,发现上面的代码会有点问题,因为第一次记数和后面的记数长度不同,导致实际的输出结果变成了这样。

dfed72ce347849b773b6f9d1997df8dc.png

第一个单词记数是从0开始,后面记数的时候,多了一个空格。

8c5c804a96a3c8264cf79b1f26b2a10d.png

代码更新如下

#include <stdio.h>
#include <stdint.h>
#include <string.h>int string_reverse(char str[], int length)
{char tmp;for (int i = 0; i < length/2; i++) {tmp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = tmp;}
}int main() {char input[] = "welcome to hello world";char *p = NULL;int num = 0;printf("%s\n", input);string_reverse(input, strlen(input));p = (char*)&input;for (int i = 0, length = 0; i < sizeof(input); i++, length++) {if (input[i] == ' ' || input[i] == '\0') {string_reverse(p, length);p = &input[i + 1]; //偏移掉空格掉位置length = -1; // 因为这时候多了一个空格}}printf("%s\n", input);return 0;
}

代码是简单了些,但是这样的笔试题,我相信也不是每个人都能很快就写出来的,如果对大家有帮助的,帮忙点赞转发呗

代码输出

0d8315c28d30cbb9f58262811bb1c8df.png

8cbc730f77203edfad1a8dbc60db87b2.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/619425.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入了解数据结构第四弹——排序(1)——插入排序和希尔排序

前言&#xff1a; 从本篇开始&#xff0c;我们就开始进入排序的学习&#xff0c;在结束完二叉树的学习之后&#xff0c;相信我们对数据在内存中的存储结构有了新的认识&#xff0c;今天开始&#xff0c;我们将进入排序的学习&#xff0c;今天来学习第一篇——插入排序 目录 什…

回溯算法中常见的使用方法逻辑整理

回溯算法 常见的使用方法逻辑整理 1. 回溯算法 特点 回溯算法实际上一个类似枚举的搜索尝试过程&#xff0c;主要是在搜索尝试过程中寻找问题的解&#xff0c;当发现已不满足求解条件时&#xff0c;就“回溯”返回&#xff0c;尝试别的路径。回溯法是一种选优搜索法&#xff0…

CentOS 7安装Nginx

说明&#xff1a;本文介绍如何在CentOS 7操作系统中安装Nginx 下载安装 首先&#xff0c;去官网上下载Nginx压缩包&#xff0c;官网地址&#xff1a;https://nginx.org/en/download.html&#xff0c;我这里下载稳定版1.24.0&#xff1b; 上传到云服务器上&#xff0c;解压&am…

Vue入门:天不生Vue,前端万古如长夜 - Vue从入门到放弃

目录 &#x1f44b; Vue环境搭建 1.安装node.js 2.配置环境变量 3.VSCode配置 4.安装Vue CLI 5.在VS Code中打开Vue项目 6.运行Vue项目 &#x1f440; Vue基础学习 1.引入vue.js 2.数据方法 3.生命周期&#xff01; 4.模板语法 5.对象语法 6.条件渲染 7.列表渲…

openstack安装dashboard后登录网页显示404错误

1. 2.进入该目录vim /etc/httpd/conf.d/openstack-dashboard.conf 增加这一行 WSGIApplicationGroup %{GLOBAL} 重启httpd后就可以访问了

Oracle 19c RAC 补丁升级 补丁回退

补丁升级流程 补丁升级 停止集群备份家目录 两节点分别操作 cd /u01/app/19.3.0/grid/bin/ crsctl stop crs tar -zcvf /u01/app.tar.gz /u01/app /u01/app/19.0.0/grid/bin/crsctl start crs 两节点OPatch替换 --- 表示 root 用户&#xff0c;$ 表示 Oracle 用户提示符&#…

QT、ffmpeg视频监控分屏

1、支持分屏&#xff08;4&#xff0c;6&#xff0c;8&#xff0c;9&#xff0c;13&#xff0c;16&#xff0c;25&#xff0c;32&#xff0c;64&#xff09;切换 2、支持拖拽效果 3、支持播放mp4&#xff0c;rtmp等 4、本人亲测支持播放32路&#xff0c;64路没做测试 5、支持读…

计算机网络—传输层UDP协议:原理、应用

​ &#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;2月のセプテンバー 1:21━━━━━━️&#x1f49f;──────── 5:21 &#x1f504; ◀️ ⏸ ▶️ ☰ &am…

Github 2024-04-15 开源项目日报Top10

根据Github Trendings的统计,今日(2024-04-15统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目4TypeScript项目2HTML项目1JavaScript项目1C++项目1Rust项目1Mojo项目1Fooocus: 图像生成软件 创建周期:188 天开发语言:Python协议…

基于SSM微信小程序的四六级词汇系统

采用技术 基于SSM微信小程序的四六级词汇系统的设计与实现~ 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringMVCMyBatis 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 页面展示效果 用户客户端 注册用户界面 首页界面 我的界面 用户信息界…

SqlServer专题

目录 1&#xff0c;连接数据库 2&#xff0c;连接池 1.何为连接池&#xff1f; 2.连接池运行原理。 3.如何查看连接池&#xff1f; 4.连接池注意事项。 3&#xff0c;一般SQL语句。 4&#xff0c;控制语句 1.判断语句 2.循环语句 5&#xff0c;视图 1.使用…

Spark 应用程序优化和调优总结

文章目录 前言调整 Spark 默认配置查看和设置 Spark 配置信息动态扩展集群负载 数据的缓存和持久化DataFrame.cache()DataFrame.persist()何时缓存和持久化何时不缓存和持久化 Spark 中的 JOINs广播连接排序合并连接 总结 前言 本文总结了 Spark 中比较重要和常用的调优手段&a…