剑指offer题解合集——Week1day4
2023-12-19 22:53:10
剑指offerWeek1
周四:替换空格
题目链接:替换空格
请实现一个函数,把字符串中的每个空格替换成"%20"。
数据范围
0≤
输入字符串的长度 ≤1000
。
注意输出字符串的长度可能大于 1000
。
样例
输入:"We are happy."
输出:"We%20are%20happy."
AC代码
class Solution {
public:
string replaceSpaces(string &str) {
string res;
for (auto x : str)
if (x == ' ')
res += "%20";
else res += x;
return res;
}
};
思路:
整体思路
遍历数组,遇到空格就替换
周四:从尾到头打印链表
题目链接:从尾到头打印链表
输入一个链表的头结点,按照 从尾到头 的顺序返回节点的值。
返回的结果用数组存储。
数据范围
0≤
链表长度 ≤1000
。
样例
输入:[2, 3, 5]
返回:[5, 3, 2]
AC代码
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
vector<int> printListReversingly(ListNode* head) {
if (!head) return {};
vector<int> res;
while (head) res.push_back(head->val), head = head->next;
reverse(res.begin(), res.end());
return res;
}
};
思路:
整体思路
关于倒序,我们应该想到两个东西,头插法和栈
则本题可以:
1. 创建新链表,使用头插法,构造新链表,然后输出即可
2. 对于链表中的元素,依次入栈,然后再出栈即可
3. 取出链表的元素,放入数组中,然后逆序数组
这里采用思路三
文章来源:https://blog.csdn.net/qq_51931826/article/details/135095278
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!