1.力扣剑指office题目-左旋转字符串(简单)
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。
示例1
输入: s = “abcdefg”, k = 2
输出: “cdefgab”
示例2
输入: s = “lrloseumgh”, k = 6
输出: “umghlrlose”
限制
1 <= k < s.length <= 10000
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof/
我用C++写的
class Solution {
public:
string reverseLeftWords(string s, int n) {
string a(s,n);
a = a + s.substr(0, n);
return a;
}
};
执行用时:4ms
内存耗损:7.6MB
string a(s,n) //将字符串s内开始位置为n的部分到末尾当作字符串a的初值
c++中substr的用法
s.substr(0,n)
//表示从下标为0开始截取到下标为n
s.substr(n)
//表示从下标为n开始一直到结尾
2.力扣剑指office题目-二叉树的镜像(简单)
请完成一个函数,输入一个二叉树,该函数输出它的镜像。
例如输入:
4
/ \
2 7
/ \ / \
1 3 6 9
镜像输出:
4
/ \
7 2
/ \ / \
9 6 3 1
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof/
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
还是c++
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
TreeNode* mirrorTree(TreeNode* root) {
if (root == NULL){
return NULL;
}
TreeNode* a = root->left;
root->left = mirrorTree(root->right);
root->right = mirrorTree(a);
return root;
}
};
执行用时:4ms
内存耗损:7.6MB
我是这样想的,就直接把二叉树的左右子树换过来,所以需要一个可以暂时存放二叉树左子树的数,然后用递归把左右子树换过来。