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类加载机制
你所不知道的库存超限做法 在互联网企业中,限购的做法,多种多样,有的别出心裁,有的因循守旧,但是种种做法皆想达到的目的,无外乎几种,商品卖的完,系统抗的住,库存不超限.虽然短短数语,却有着说不完,道不 ...
随机推荐
- EJB3.0 EJB开发消息驱动bean
(7)EJB3.0 EJB开发消息驱动bean JMS 一: Java消息服务(Java Message Service) 二:jms中的消息 消息传递系统的中心就是消息.一条 Message 由三个 ...
- 电表读数归零回滚SQL处理算法
在采集电表数据的时候,可以发现有些电表设备读数会发生回滚.这时候,如果单纯的累加计算用电量,就会出现负值.当然,这也许和电表的质量有关系. “RTQty”(当前读到的读数).“LastQty”(上次读 ...
- [Erlang34]erlang.mk的源码阅读1-入门makefile
通过erlang.mk项目,掌握基本的makefile语法,可以自己定制makefile. 1. makefile 基本规则: 1. 所有的源文件没有被编译过,则对各个源文件进行编译并进行链接,生成最 ...
- 通过hive向写elasticsearch的写如数据
通过hive向写elasticsearch的写如数据 hive 和 elasticsearch 的整合可以参考官方的文档: ES-hadoop的hive整合 : https://www.elastic ...
- LNMP搭建流程
参考张宴的nginx搭建流程. http://zyan.cc/nginx_php_v6/
- java使用Redis2--保存对象
Redis中并没有提供set(String key, Object obj)的方法,但提供了set(final byte[] key, final byte[] value) 的方法,可以通过把对象转 ...
- (转)使用VS实现XML2CS
转自 StackOverFlow Method 1 XSD tool Suppose that you have your XML file in this location C:\path\to\x ...
- [转]CocoaPods安装和使用教程
[转载自:http://code4app.com/article/cocoapods-install-usage] 目录 CocoaPods是什么? 如何下载和安装CocoaPods? 如何使用Coc ...
- IDEA + SpringBoot + Java搭建Web项目
打开IDEA,选择Spring Initializr,默认配置,点击Next  添写GAV.(group.Artifact.Version)  选择Spring Boot版本,这里选2.1.4稳定 ...
- Mysql备份之Innobakcupex&Xtrabackup
一.innobackupex备份工具 基本选项 --compress:该选项表示压缩innodb数据文件的备份. --compress-threads:该选项表示 ...