leetcode简单题目两道(4)
2017-04-22 22:08
387 查看
心情还是有问题,保持每日更新,只能如此了。
PS:存货快用完了。。。。
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 {3,9,20,#,#,15,7}, ····3 / \ 9 20 / \ 15 7 Result return its level order traversal as: [ [3], [9,20], [15,7] ] 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 = 0; if (root == NULL) { return result; } int left = HeightOfTree(root->left) + 1; int right = HeightOfTree(root->right) + 1; 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 + 1, result); calLevelOrder(root->right, level + 1, 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 = 0; i < height; i++) { result.push_back(v); } calLevelOrder(root, 0, 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() <= 1) { return s; } int i = 0, j = s.size() - 1; 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 1: Given s = "hello", return "holle". Example 2: Given s = "leetcode", return "leotcede". Code class Solution { public: string reverseVowels(string s) { if (s.size() <= 1) { return s; } int i = 0, j = s.size() - 1; 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简单题目两道(3)
- leetcode简单题目两道(2)
- leetcode简单题目两道(5)
- leetcode -- Invert Binary Tree -- 简单题目看看
- leetcode -- First Missing Positive -- 简单trick题目
- 【Leetcode】碰到一道脑残leetcode,比之前觉得简单的还简单。。。一下还两道……Search in Rotated Sorted Array I和II
- 异或解决LeetCode两道算法题目
- leetcode -- Text Justification -- string操作的题目,思路简单,但是难以写对
- 两道简单的题目
- leetcode 595. Big Countries(SQL,最简单的leetcode题目)38
- leetcode -- Unique Paths I &&II-- 典型DP 题目,简单要看
- 贡献两道简单的leetcode
- LeetCode中的两道动态规划题目
- leetcode -- Range Sum Query 2D - Immutable -- 简单DP题目
- Leetcode两道小题目python试水
- Leetcode--两道简单的二进制问题
- 283. Move Zeroes——LeetCode(挪“零”)(简单题目)
- leetcode题解-Dynamic Programming简单类别题目汇总
- 微软面试简单算法题目
- 简单的加密题目(公钥私钥)