剑指Offer05题(字符串)
2021/7/19 23:09:49
本文主要是介绍剑指Offer05题(字符串),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
- 第一种解法就是中规中矩地遍历数组,用一个额外的数组来装新的字符串。
char* replaceSpace(char* s){ int count = 0; for (int i = 0; i < strlen(s); i++) { if (s[i] == ' ') count++; } char* ans = (char*)malloc(sizeof(char) * (strlen(s) + count * 2 + 1)); int i = 0, j = 0; while (i < strlen(s)) { if (s[i] != ' ') { ans[j] = s[i]; i++, j++; } else { ans[j] = '%'; ans[j + 1] = '2'; ans[j + 2] = '0'; i++, j += 3; } } ans[j] = '\0'; return ans; }
- 题解用的C++,C++中的字符串有一些对应的方法,处理起来比C要方便不少。使用C++的话可以先将字符串扩充到所需要的大小,然后用两个指针,一个i指向原来字符串的末尾,一个j指向扩充后字符串的末尾,然后往前移动,如果i遇到字符就将i指向的字符赋给j指向的地方,然后i和j同时往前移动一个元素的距离;如果i遇到空格的话,就让j往前写%20这三个字符,然后j往前移动到%字符处(即移动两个元素的距离),再跟i一起往前移动一格;当i和j想错或相遇时,循环就结束,新的字符串也产生了。
这篇关于剑指Offer05题(字符串)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-29设计Element UI表单组件居然如此简单!
- 2024-12-28一步到位:购买适合 SEO 的域名全攻略
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南