当前位置:网站首页>Leetcode question brushing (5.28) hash table
Leetcode question brushing (5.28) hash table
2022-07-06 08:20:00 【Freya】
1. Effective alphabetic words
subject :
Given two strings s and t , Write a function to determine t Whether it is s Letter heteronym of .
Be careful : if s and t Each character in the has the same number of occurrences , said s and t They are mutually alphabetic words .
Input : s = "anagram", t = "nagaram"
Output : true
Input : s = "rat", t = "car"
Output : false
Ideas :
Use a length of 26 Array of represents hash table ,s The corresponding position of the middle letter in the hash table (s[i] - ‘a’) Add one ,t The middle letters are then subtracted by one , Finally, check whether the hash table is all 0, otherwise false.
note :
When it comes to quickly determining whether an element appears in the set , Think about hashifa .
But hashifa also sacrificed space for time , Because you need to use extra arrays ,set Or is it map To store data , In order to achieve fast search .
When it comes to using collections to solve hash problems , priority of use unordered_set, Because its query and add delete efficiency is optimal , If you need the set to be ordered , Then use set, If it requires not only order but also duplicate data , Then use multiset.
python in ord() It means take ASCII value .
C++:
// The time complexity is O(n), Spatial complexity O(1)
class Solution {
public:
bool isAnagram(string s, string t) {
int record[26] = {
0};
for(int i = 0; i < s.size(); i++){
record[s[i] - 'a']++;
}
for(int i = 0; i < t.size(); i++){
record[t[i] - 'a']--;
}
for(int i = 0; i < 26; i++){
if(record[i] != 0){
return false;
}
}
return true;
}
};
Python:
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
record = [0] * 26
for i in range(len(s)):
record[ord(s[i]) - ord("a")] += 1
for i in range(len(t)):
record[ord(t[i]) - ord("a")] -= 1
for i in range(26):
if record[i] != 0:
return False
break
return True
2. Intersection of two arrays
subject :
Given two arrays nums1 and nums2 , return Their intersection . Every element in the output must be only Of . We can Regardless of the order of the output results .
Input :nums1 = [1,2,2,1], nums2 = [2,2]
Output :[2]
Input :nums1 = [4,9,5], nums2 = [9,4,9,8,4]
Output :[9,4]
explain :[4,9] It is also passable
Ideas :
C++:
use unordered_set Realization
Be careful : Use it directly set Not only does it take up more space than arrays , And it's slower than arrays ( So can we use arrays or try to use arrays )
Python:
Two arrays become two sets , Intersection of sets , Then revert to array (list)
note :
C++:
- for ( : ) For traversing arrays
- unordered_set::find() The function is C++ STL Built in functions in , Used to search for elements in containers .
Returns the iterator that found the element , Otherwise, it points back to unordered_set Iterator at the end .
Python:
& : Intersection of sets
C++:
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> result_set;
unordered_set<int> nums_set(nums1.begin(), nums1.end());
for (int num : nums2) {
// Commonly used find and end Combine to judge num_set Whether contains num
// If nums_set contains nums2 Insert it into result_set in
// here nums_set yes nums1 Converted ( duplicate removal )
if (nums_set.find(num) != nums_set.end()){
result_set.insert(num);
}
}
return vector<int> (result_set.begin(), result_set.end());
}
};
Python:
class Solution:
def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
return list(set(nums1) & set(nums2))
边栏推荐
- Common functions for PHP to process strings
- 图像融合--挑战、机遇与对策
- Restore backup data on S3 compatible storage with tidb lightning
- [Yugong series] February 2022 U3D full stack class 011 unity section 1 mind map
- VMware 虚拟化集群
- [Yugong series] February 2022 U3D full stack class 010 prefabricated parts
- MySQL view tablespace and create table statements
- 备份与恢复 CR 介绍
- Pyqt5 development tips - obtain Manhattan distance between coordinates
- C language - bit segment
猜你喜欢

Fibonacci sequence
![[untitled]](/img/38/bc025310b9742b5bf0bd28c586ec0d.jpg)
[untitled]
![[research materials] 2022 enterprise wechat Ecosystem Research Report - Download attached](/img/35/898a8086bc35462b0fcb9e6b58b86b.jpg)
[research materials] 2022 enterprise wechat Ecosystem Research Report - Download attached

Zhong Xuegao, who cannot be melted, cannot escape the life cycle of online celebrity products

在 uniapp 中使用阿里图标

3. File operation 3-with

Ruffian Heng embedded bimonthly, issue 49
![[Yugong series] February 2022 U3D full stack class 011 unity section 1 mind map](/img/c3/1b6013bfb2441219bf621c3f0726ea.jpg)
[Yugong series] February 2022 U3D full stack class 011 unity section 1 mind map

Online yaml to CSV tool

【T31ZL智能视频应用处理器资料】
随机推荐
让学指针变得更简单(三)
LDAP應用篇(4)Jenkins接入
IP lab, the first weekly recheck
Remote storage access authorization
化不掉的钟薛高,逃不出网红产品的生命周期
1. Color inversion, logarithmic transformation, gamma transformation source code - miniopencv from zero
【T31ZL智能视频应用处理器资料】
What is the use of entering the critical point? How to realize STM32 single chip microcomputer?
1202 character lookup
LDAP应用篇(4)Jenkins接入
华为云OBS文件上传下载工具类
[untitled]
MFC sends left click, double click, and right click messages to list controls
Use br to back up tidb cluster data to S3 compatible storage
Char to leading 0
Entity class design for calculating age based on birthday
From monomer structure to microservice architecture, introduction to microservices
Step by step guide to setting NFT as an ens profile Avatar
String to leading 0
Online yaml to CSV tool