博客
关于我
leetcode关于微信读书的笔记-字符串
阅读量:261 次
发布时间:2019-03-01

本文共 1279 字,大约阅读时间需要 4 分钟。

1.判断两个字符串是否互为变形词

(1)题目:
给定两个字符串str1和str2,如果str1和str2中出现的字符种类一样且每种字符出现的次数也一样,那么str1与str2互为变形词。请实现函数判断两个字符串是否互为变形词。
(2)举例:
str1="123",str2="231",返回true。str1="123",str2="2331",返回false。
(3)思路:
①如果字符串str1和str2长度不同,直接返回false。
②如果长度相同,假设出现字符的编码值在0~255之间,那么先申请一个长度为256的整型数组map,map[a]=b代表字符编码为a的字符出现了b次,初始时map[0…255]的值都是0。
③然后遍历字符串str1,统计每种字符出现的数量,比如遍历到字符’a’,其编码值为97,则令map[97]++。这样map就成了str1中每种字符的词频统计表
④然后遍历字符串str2,每遍历到一个字符,都在map中把词频减下来,比如遍历到字符’a’,其编码值为97,则令map[97]–,如果减少之后的值小于0,直接返回false。如果遍历完str2,map中的值也没出现负值,则返回true。
(4)代码

在这里插入图片描述

(5)总结
①如果字符的类型有很多,可以用哈希表代替长度为256的整型数组,但整体过程不变。
②如果字符的种类为M,str1和str2的长度为N,那么该方法的时间复杂度为O(N),额外空间复杂度为O(M)。

2.leetcode - 1662. 检查两个字符串数组是否相等

思路:

①给你两个字符串数组 word1 和 word2 。如果两个数组表示的字符串相同,返回 true ;否则,返回 false 。
②数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串。

举例

示例 1:
输入:word1 = [“ab”, “c”], word2 = [“a”, “bc”]
输出:true
word1 表示的字符串为 “ab” + “c” -> “abc”
word2 表示的字符串为 “a” + “bc” -> “abc”
两个字符串相同,返回 true
示例 2:
输入:word1 = [“a”, “cb”], word2 = [“ab”, “c”]
输出:false
示例 3:
输入:word1 = [“abc”, “d”, “defg”], word2 = [“abcddefg”]
输出:true

代码:

int minPathSum(int** grid, int gridSize, int* gridColSize){       int i,j;    if(gridSize==0|| *gridColSize==0){           return 0;    }    int dp[gridSize][*gridColSize];//gridsize为列,gridColdSize为行    dp[0][0]=grid[0][0];//初始化第一步    for(i=1;i

转载地址:http://ktno.baihongyu.com/

你可能感兴趣的文章
ubuntu非root用户如何访问vmware共享文件夹
查看>>
如何使用Postman保存请求和返回,离线查看请求数据
查看>>
系统架构
查看>>
图解HTTP (chap4 Http状态码) 5XX
查看>>
creator世界坐标w_pos会变化导致的录屏回放时相对位置变化造成bug(改为local_pos即可解决)
查看>>
Python3实现程序更新
查看>>
类似愤怒小鸟的飞行弹道
查看>>
(二十七)unity4.6学习Ugui中文文档-------Unity3D UI (uGUI)窗口扩展
查看>>
Android官方文档之DataBinding库
查看>>
【python】输出到文件, f.write与print
查看>>
【今日CV 计算机视觉论文速览 第97期】Tue, 9 Apr 2019
查看>>
【mAP】关于目标检测mAP的一些理解
查看>>
庄子:谁知南华秋水意?
查看>>
android 在一个应用中启动另一个应用
查看>>
Thread.sleep() 和 Thread.yield() 区别
查看>>
Kotlin 简单优雅的高阶函数
查看>>
ES6 箭头函数: () => {} 与匿名函数 function() {}
查看>>
13.13 java.util.ConcurrentModificationException
查看>>
UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
查看>>
第14章 使用Kotlin 进行 Android 开发(2)
查看>>