leetcode简单题目两道(4)
心情还是有问题,保持每日更新,只能如此了。
Problem
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
Example:
Given binary tree {,,,#,#,,},
····
/ \
/ \
Result
return its level order traversal as:
[
[],
[,],
[,]
]
Code
/**
* 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:
int HeightOfTree(TreeNode* root) {
int result = ;
if (root == NULL) {
return result;
}
int left = HeightOfTree(root->left) + ;
int right = HeightOfTree(root->right) + ;
result = left > right ? left : right;
return result;
}
void calLevelOrder(TreeNode* root, int level, vector<vector<int> >& result) {
if (root == NULL) {
return;
}
result[level].push_back(root->val);
calLevelOrder(root->left, level + , result);
calLevelOrder(root->right, level + , result);
}
vector<vector<int> > levelOrder(TreeNode* root) {
vector<vector<int> > result;
vector<int> v;
if (root == NULL) {
return result;
}
int height = HeightOfTree(root);
for (int i = ; i < height; i++) {
result.push_back(v);
}
calLevelOrder(root, , result);
return result;
}
};
Problem1
Write a function that takes a string as input and returns the string reversed.
Example:
Given s = "hello", return "olleh".
Code
class Solution {
public:
string reverseString(string s) {
if (s.size() <= ) {
return s;
}
int i = , j = s.size() - ;
char ch;
while (i < j) {
ch = s[i];
s[i] = s[j];
s[j] = ch;
i++;
j--;
}
return s;
}
};
Problem2
Write a function that takes a string as input and reverse only the vowels of a string.
Example :
Given s = "hello", return "holle".
Example :
Given s = "leetcode", return "leotcede".
Code
class Solution {
public:
string reverseVowels(string s) {
if (s.size() <= ) {
return s;
}
int i = , j = s.size() - ;
char ch;
while (i < j) {
while(i < j && s[i] != &#;a&#; && s[i] != &#;e&#; && s[i] != &#;i&#; && s[i] != &#;o&#; && s[i] != &#;u&#;
&& s[i] != &#;A&#; && s[i] != &#;E&#; && s[i] != &#;I&#; && s[i] != &#;O&#; && s[i] != &#;U&#;) {
i++;
}
while(i < j && s[j] != &#;a&#; && s[j] != &#;e&#; && s[j] != &#;i&#; && s[j] != &#;o&#; && s[j] != &#;u&#;
&& s[j] != &#;A&#; && s[j] != &#;E&#; && s[j] != &#;I&#; && s[j] != &#;O&#; && s[j] != &#;U&#;) {
j--;
}
ch = s[i];
s[i] = s[j];
s[j] = ch;
i++;
j--;
}
return s;
}
};
说明
与上面同样的逻辑,只是出现特定的字符才交换位置
PS:存货快用完了。。。。
leetcode简单题目两道(4)的更多相关文章
- leetcode简单题目两道(2)
Problem Given an integer, write a function to determine if it is a power of three. Follow up: Could ...
- leetcode简单题目两道(3)
本来打算写redis的,时间上有点没顾过来,只能是又拿出点自己的存货了. Problem Given an array nums, write a function to move all 's to ...
- leetcode简单题目两道(5)
Problem Given an integer (signed bits), write a function to check whether it . Example: Given num = ...
- leetcode简单题目两道(1)
Problem: You are playing the following Nim Game with your friend: There is a heap of stones on the t ...
- CTF中关于XXE(XML外部实体注入)题目两道
题目:UNCTF-Do you like xml? 链接:http://112.74.37.15:8008/ hint:weak password (弱密码) 1.观察后下载图片拖进WINHEX发现提 ...
- 两道面试题,带你解析Java类加载机制
文章首发于[博客园-陈树义],点击跳转到原文<两道面试题,带你解析Java类加载机制> 在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题: class Gr ...
- 【转】两道面试题,带你解析Java类加载机制(类初始化方法 和 对象初始化方法)
本文转自 https://www.cnblogs.com/chanshuyi/p/the_java_class_load_mechamism.html 关键语句 我们只知道有一个构造方法,但实际上Ja ...
- 『ACM C++』Virtual Judge | 两道基础题 - The Architect Omar && Malek and Summer Semester
这几天一直在宿舍跑PY模型,学校的ACM寒假集训我也没去成,来学校的时候已经18号了,突然加进去也就上一天然后排位赛了,没学什么就去打怕是要被虐成渣,今天开学前一天,看到最后有一场大的排位赛,就上去试 ...
- 你所不知道的库存超限做法 服务器一般达到多少qps比较好[转] JAVA格物致知基础篇:你所不知道的返回码 深入了解EntityFramework Core 2.1延迟加载(Lazy Loading) EntityFramework 6.x和EntityFramework Core关系映射中导航属性必须是public? 藏在正则表达式里的陷阱 两道面试题,带你解析Java类加载机制
你所不知道的库存超限做法 在互联网企业中,限购的做法,多种多样,有的别出心裁,有的因循守旧,但是种种做法皆想达到的目的,无外乎几种,商品卖的完,系统抗的住,库存不超限.虽然短短数语,却有着说不完,道不 ...
随机推荐
- Webservice发布
此文甚好,转载自:http://blog.163.com/java_player@126/blog/static/127930738200981555021925/ 某些地方笔者已经加以改进. 使用工 ...
- struts2拦截器demo
按照网上的一些资料配置的,期间也出现过几个错误. 其中有个错误,是关于struts.xml里面package配置的问题,因为里面的几个标签是有顺序的. 顺序是: result-types interc ...
- CentOS 7 IPv6关闭
你可以用两个方法做到这个.方法 1编辑文件/etc/sysctl.conf,vi /etc/sysctl.conf添加下面的行:net.ipv6.conf.all.disable_ipv6 =1net ...
- 关于如何参与到开源项目中《How To Succeed In Open Source ( In Ways You Haven't Considered Yet )》
转自:http://gaslight.co/blog/how-to-succeed-in-open-source-in-ways-you-havent-considered-yet It’s Easy ...
- EAS系统环境的搭建
(一)应用服务器配置 1.先建立好程序需要部署的文件夹,如D:\AppServer\,此目录下包含如下几个子目录: XClient(客户端升级程序放置的目录,此目录下应包含Config和Files子目 ...
- Volo.Abp.EntityFrameworkCore.MySQL 使用
创建新项目 打开 https://cn.abp.io/Templates ,任意选择一个项目类型,然后创建项目,我这里创建了一个Web Api 解压项目,还原Nuget,项目目录如下: 首先我们来查看 ...
- Java中Io类-File类的构造方法
package com.hxzy.IOSer;import java.io.*;public class Demo02 { public static void main(String[] args) ...
- 洛谷P4069 [SDOI2016]游戏(李超线段树)
题面 传送门 题解 如果我们把路径拆成两段,那么这个路径加可以看成是一个一次函数 具体来说,设\(dis_u\)表示节点\(u\)到根节点的距离,那么\((x,lca)\)这条路径上每个节点的权值就会 ...
- 【性能分析】使用Intel VTune Amplifier
本文转自 https://software.intel.com/zh-cn/blogs/2010/11/10/amplxe-cl/版权归原作者所有,如原作者有任何不允许转载之理由,本文将自行删除. I ...
- C 语言调试信息输出宏定义
C 语言经常在实际的调试过程中,使用最基本的调试方法printf,我们可以使用__FILENAME__.__FUNCTION__.__LINE__,增加自己的输出宏定义: #define DVR_PR ...