Leetcode 392,104




Leetcode 392,104

392. 判断子序列

题目链接

题目描述

给定字符串 s 和 t ,判断 s 是否为 t 的子序列。

你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。

字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。

示例 1

s = "abc", t = "ahbgdc"

返回 true.

示例 2

s = "axc", t = "ahbgdc"

返回 false.

题目难得的给数据范围了2333

因为子串不需要连续,所以直接两个变量ij指向s和t的初始位置。如果s[i]==t[j]则i和j同时加1,否则j+1,i不变。

如果i能移动到s的末尾就返回True。

class Solution {
public:
    bool isSubsequence(string s, string t) {
        int ssize=s.size();
        if(!ssize)return 1;
        for(int i=0,j=0;i<t.size();i++)
        {
            if(t[i]==s[j])
            {
                j++;
                if(j==ssize)return 1;
            }            
        }
        return 0;
    }
};

104. 二叉树的最大深度

题目链接

题目描述

给定一个二叉树,找出其最大深度。

二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

说明: 叶子节点是指没有子节点的节点。

示例:

给定二叉树 [3,9,20,null,null,15,7],

3

/ \

9 20

/ \

15 7

返回它的最大深度 3 。

还能说啥,二叉树遍历==

/**
 * 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 maxDepth(TreeNode* root) {
        return root==NULL?0:max(maxDepth(root->right),maxDepth(root->left))+1;
    }
};


登录后评论

共有0条评论