Given two (dictionary) words as Strings, determine if they are isomorphic
来源:互联网 发布:子域名查询工具 编辑:程序博客网 时间:2024/05/26 08:42
Given two (dictionary) words as Strings, determine if they are isomorphic
. Two words are called isomorphic if the letters in one word can be remapped
to get the second word. Remapping a letter means replacing all occurrences
of it with another letter while the ordering of the letters remains
unchanged. No two letters may map to the same letter, but a letter may map
to itself.
Example:
Given "foo", "app"; returns true
we can map 'f' -> 'a' and 'o' -> 'p'
Given "bar", "foo"; returns false
we can't map both 'a' and 'r' to 'o'
Given "turtle", "tletur"; returns true
we can map 't' -> 't', 'u' -> 'l', 'r' -> 'e', 'l' -> 'u', 'e' -'r'
Given "ab", "ca"; returns true
. Two words are called isomorphic if the letters in one word can be remapped
to get the second word. Remapping a letter means replacing all occurrences
of it with another letter while the ordering of the letters remains
unchanged. No two letters may map to the same letter, but a letter may map
to itself.
Example:
Given "foo", "app"; returns true
we can map 'f' -> 'a' and 'o' -> 'p'
Given "bar", "foo"; returns false
we can't map both 'a' and 'r' to 'o'
Given "turtle", "tletur"; returns true
we can map 't' -> 't', 'u' -> 'l', 'r' -> 'e', 'l' -> 'u', 'e' -'r'
Given "ab", "ca"; returns true
we can map 'a' -> 'c', 'b' ->'a'
bool isomorphic(const string& s1, const string& s2){if(s1.length() != s2.length())return false;unordered_map<char,char> ht;unordered_map<char,char> reverseHT;for(size_t i = 0;i<s1.length();++i){auto it = ht.find(s1[i]);if(it == ht.end()) { auto itt = reverseHT.find(s2[i]); if(itt == reverseHT.end()) { ht.insert(make_pair(s1[i],s2[i])); reverseHT.insert(make_pair(s2[i],s1[i])); } else if(itt->second != s1[i]) return false; } else if(it->second != s2[i]) return false;}return true;}
0 0
- Given two (dictionary) words as Strings, determine if they are isomorphic
- Given two binary trees, write a function to check if they are equal or not.
- How to Determine if Two Words Are Anagrams of Each Other in C# (转)
- Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separa
- Given two strings s and t, write a function to determine if t is an anagram of s.
- Given two strings s and t, write a function to determine if t is an anagram of s.
- [LinkedIn]Isomorphic Strings Dictionary substitution
- [Amazon]Given 2 numbers. Find if they are consecutive gray (grey) code sequences
- 【4】Decide if two strings are anagrams or not
- Given an integer, write a function to determine if it is a power of two.
- Given an integer, write a function to determine if it is a power of two
- Two Strings Are Anagrams
- Two Strings Are Anagrams
- Two Strings Are Anagrams
- Two Strings Are Anagrams
- Two Strings are Anagram
- uva548 -treeDescription Download as PDF You are to determine the value of the leaf node in a given
- [Tree]If you are given two traversal sequences, can you construct the binary tree?
- C++ 下 Function 对象的实现
- matlab函数详解之“sub2ind”
- NSString彻底去除空格的方法
- Charles(最强大的http调试工具)详细教程(上)
- LeetCode 107 Permutations
- Given two (dictionary) words as Strings, determine if they are isomorphic
- 使用jQuery使Div居中
- iOS 关于tableView cell的分割线的一些设置
- Linux下各文件夹的含义
- VP2.0中的纹理动画设计
- nginx 相关
- 黑马程序员——面向对象(二)---类的继承、多态性、匿名内部类、异常、包、访问控制、命名规范、jar文件
- STM32的BootLoader 从SD卡更新固件
- java中的LinkedList