Leetcode--easy系列10

#205 Isomorphic Strings

Given two strings s and t, determine if they are isomorphic.

Two strings are isomorphic if the characters in s can be replaced to get t.

All occurrences of a character must be replaced with another character while preserving the order of characters. No two characters may map to the same character but a character may map to itself.

For example,

Given "egg""add",
return true.

Given "foo""bar",
return false.

Given "paper""title",
return true.

Note:

You may assume both s and t have the same length.

判断2个字符串结构是否相同(默认长度相等)。最开始我是这样想的,将两个同构不同型的字符串按规则变为同构同型的字符串,比较转换后的字符串是否等。

如paper  ‘p‘变为1,‘a’变为2,‘e’变为3 ‘r’变为4.则字符串变为 12134  title 类似变为12134,相等说明同构。

另一种思路是分别遍历两个字符串,利用hash表中的s[i]位置存储t[i]中的字符,当下一次s字符串中再次出现s[j] ==s[i] 时,对于 t[j] 位置上的字符应该和先前的字符 t[i] 相同。

//0ms
bool isIsomorphic(char* s, char* t) {
    int hash[128] = {0};
    int i;
    for( i = 0; s[i] != '\0'; i++)
    {
        if(!hash[s[i]])
            hash[s[i]] = t[i];
        else if (hash[s[i]] != t[i])
            return false;
    }
    memset(hash,0,sizeof(hash));
    for( i =0; t[i] != '\0'; i++)
    {
        if(!hash[t[i]])
            hash[t[i]] = s[i];
        else if (hash[t[i]] != s[i])
            return false;
    }
    return true;
}

#206 Reverse Linked List

Reverse
a singly linked list.

//0ms
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* reverseList(struct ListNode* head) {
    struct ListNode *newhead,*p,*new_p,*r;
	newhead->next = head;
	p = head;
	r = NULL;
	while(p)
	{
		new_p = p->next;
		p->next = r;
		r = p;
		p = new_p;
	}
	return r;
}

#223
Rectangle Area

Find the total area covered by two rectilinear rectangles in a 2D plane.

Each rectangle is defined by its bottom left corner and top right corner as shown in the figure.

Assume that the total area is never beyond the maximum possible value of int.

2个对角顶点可以确定一个长方形,给定4个点的坐标,求它们构成的2个长方形覆盖的面积。

关键在于如何根据坐标的相对大小来确定2个长方形是否相互覆盖。

//12ms
int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
    int area = (C-A)*(D-B) + (G-E)*(H-F);
    int top,bottom,left,right,cover;
    if(A>=G || C<=E || B>=H || D<=F)
        return area;
    top = (D<=H)?D:H;
    bottom = (B>=F)?B:F;
    left = (A>=E)?A:E;
    right = (C<=G)?C:G;
    cover = (top - bottom)*(right-left);
    return area-cover;
}

#226
Invert Binary Tree

Invert a binary tree.

     4
   /     2     7
 / \   / 1   3 6   9

to

     4
   /     7     2
 / \   / 9   6 3   1
//0ms
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
struct TreeNode* invertTree(struct TreeNode* root) {
    struct TreeNode* p;
    if(!root)
        return NULL;
    else if(!root->left && !root->right)
        return root;
     p = root->left;
     root->left = root->right;
     root->right = p;

     invertTree(root->left);
     invertTree(root->right);
     return root;
}
时间: 2024-10-29 19:11:31

Leetcode--easy系列10的相关文章

Leetcode算法系列(链表)之两数相加

Leetcode算法系列(链表)之两数相加 难度:中等给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字.如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和.您可以假设除了数字 0 之外,这两个数都不会以 0 开头.示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807 链接:https://le

社保系列10——返回值速查表

9000 命令执行成功 6006 依据传输模式,所要读取的字节长度错 61xx 正常处理.'xx'表示可以通过后续 GET RESPONSE命令得到的额外数据长度 6281 回送数据可能出错 6282 文件长度<Le 6283 选择文件无效 6284 FCI格式与P2指定的不符 6300 认证失败 63Cx 验证失败,x =0 表示不提供计数器 x !=0 表示重试次数 6581 EEPROM损坏,导致卡锁定 6700 Lc或Le长度错 6900 无信息提供 6901 命令不接受(无效状态) 6

Skype For Business 2015实战系列10:DNS准备

Skype For Business 2015实战系列10:DNS准备 DNS的正确配置对于Skype for Business Server 2015来说也是非常重要的,我们要让 Skype for Business Server 正常运行,就必需配置大量DNS纪录.从而使客户端知道该如何访问服务以及让服务器知道相互之间的情况. Skype for Business Server 2015 通过以下方式使用 DNS: ●发现内部服务器或服务器池以进行服务器至服务器之间的通信. ●使客户端可以发

unity3D游戏开发实战原创视频讲座系列10之《保卫战:异形入侵》游戏开发第一季

讲解目录 <保卫战:异形入侵>游戏开发    1 第一讲   游戏演示和资源的介绍    1 第二讲  "异形"怪物的实现    1 第三讲  "异形"怪物生命值的体现    9 第四讲  "异形"怪物死后处理    12 第五讲  玩家的制作    15 第六讲  玩家的行走控制(键盘)    16 第七讲  武器的切换(鼠标)     16 第八讲  摄像头的变化(鼠标)    19 第九讲  子弹预制体和特效的制作    20

我给女朋讲编程Html系列(10)--IIS8 如何在本地发布网站

通过IIS8 在本地发布网站,一个截图,你就全明白了,越是简单,越是实用. 如果有现成的网站,就将你的网站放到一个文件夹中,比如WebTest2中. 如何没有网站,可以在WebTest2中新建一个index.html文件,就当这个是网站的首页,有一个网页的网站也叫网站.然后把下面的内容复制粘贴进去保存: <html> <head> </head> <body > WebTest2欢迎您. </body> </html> 打开IIS8,

Leetcode permutation 系列

关于permutation的讲解,请参见http://blog.csdn.net/xuqingict/article/details/24840183 下列题目的讲解均是基于上面的文章: 题1: Next Permutation Total Accepted: 8066 Total Submissions: 32493My Submissions Implement next permutation, which rearranges numbers into the lexicographic

【 D3.js 入门系列 --- 10 】 地图的绘制

本人的个人博客为:www.ourd3js.com csdn博客为:blog.csdn.net/lzhlzz 转载请注明出处,谢谢. 地图的制作在 D3 中可以说是最重要的一环.因为在进行数据可视化时,很多情况都会和地图联系在一起,如中国各省的人口多少,GDP多少等,都可以和地图联系在一起. D3 中制作地图所需要的文件问 JSON 文件.JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.关于 JSON 的语法格式,可以在: http://www.w3s

Skype For Business 2015实战系列10:安装管理工具

Skype For Business 2015实战系列10:安装管理工具 今天要给大家介绍的是Skype for Business Server 2015安装前的准备工作-安装管理工具.Skype for Business Server 2015 的安装介质提供了灵活的体验.用户第一次运行Setup时,唯一安装的工具是 Skype for Business Server 部署向导和 Skype for Business Server 命令行管理程序.通过使用这两个工具(即核心组件),我们可以继续

【Leetcode长征系列】Letter Combinations of a Phone Number

原题: Given a digit string, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephone buttons) is given below. Input:Digit string "23" Output: ["ad", "ae"

【Leetcode长征系列】Merge k Sorted Lists

原题: Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 思路:两条两条地合并.时间复杂度为O(n),n为所有链表节点和. 代码: /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) :