LeetCode|Sliding Window,hash|3. 无重复字符的最长子串 205. Isomorphic Strings 290. Word Pattern

3.

start增加的情况:当前字母和window里的有重合,start变成当前字母。

end增加的情况:当前字母没在s中出现过,或者window里没有。

start的实现方式:因为每次遇到一样字母都会更新最新的index,所以start更新后一定是最近的重复了的字母(abab中a和b都有重复,start到第二个b的时候一定更新到3,因为b是最近重复的,也就是window里重复了的)

用vector:

205.

这道题点在于不仅t里的两个字母不能对应s里的一个字母,s里的两个字母也不能对应t里的同一个字母。所以如果是循环s去对应t的话,只能保证s里的a不对应t里的b和c。所以还需要再t循环一次。

还有一种更好的方法是:

每次i++把s和t的表都写上,查也是查两个.

ascii:

The 128 or 256 character limits of ASCII and Extended ASCII limits the number of character sets that can be held. 

290.

istringstream in(str);

string cur;

in >> cur;

这道题可以照搬上面的思路,但是还要加一步:

 因为词的个数可能跟pattern.size()不一样。

更聪明的做法:每次都记录not each other,but current index。

use i + 1 as the value to avoid 0 since map and unordered_map will assign default 0 value for non-existing keys

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值