是否同构
来源:互联网 发布:js 设置radio checked 编辑:程序博客网 时间:2024/06/08 14:58
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.
注意事项
You may assume both s and t have the same length.
样例
Given s = "egg", t = "add", return true.
Given s = "foo", t = "bar", return false.
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.
注意事项
You may assume both s and t have the same length.
样例
Given s = "egg", t = "add", return true.
Given s = "foo", t = "bar", return false.
Given s = "paper", t = "title", return true.
import java.util.HashMap;import java.util.HashSet;import java.util.Map;import java.util.Scanner;import java.util.Set;/** * 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. 注意事项You may assume both s and t have the same length.样例Given s = "egg", t = "add", return true.Given s = "foo", t = "bar", return false.Given s = "paper", t = "title", return true. * * @author Dell * */public class Test638 { public static boolean isIsomorphic(String s, String t) { if(s.equals("")&&t.equals("")) return true; /*LinkedHashMap<Character,Integer> map1=new LinkedHashMap<>(); LinkedHashMap<Character,Integer> map2=new LinkedHashMap<>(); for(int i=0;i<s.length();i++) { if(!map1.containsKey(s.charAt(i))) { map1.put(s.charAt(i), 1); } else { map1.put(s.charAt(i), map1.get(s.charAt(i))+1); } } for(int i=0;i<t.length();i++) { if(!map2.containsKey(t.charAt(i))) { map2.put(t.charAt(i), 1); } else { map2.put(t.charAt(i), map2.get(t.charAt(i))+1); } }*/ boolean result=true; int[] map1=new int[256]; int[] map2=new int[256]; for(int i=0;i<s.length();i++) { map1[s.charAt(i)]++; } for(int i=0;i<s.length();i++) { map2[t.charAt(i)]++; } for(int i=0;i<s.length();i++) { if(map1[s.charAt(i)]!=map2[t.charAt(i)]) { result=false; break; } } return result; } public static boolean isIsomorphic1(String s, String t) { if(s==null||t==null) return false; if(s.length()!=t.length()) return false; Map<Character,Character> map=new HashMap<>(); Set<Character> set=new HashSet<>(); for(int i=0;i<s.length();i++) { char c1=s.charAt(i); char c2=t.charAt(i); if(map.containsKey(c1)) { if(map.get(c1)!=c2) return false; } else { if(set.contains(c2)) return false; else { map.put(c1, c2); set.add(c2); } } } return true; }public static void main(String[] args) { Scanner sc=new Scanner(System.in); String s=sc.nextLine(); String t=sc.nextLine(); System.out.println(isIsomorphic(s,t));}}
阅读全文
0 0
- 是否同构
- 判断数是否同构
- 判断二叉树是否同构
- poj 1635 判断树是否同构
- 判定两棵二叉树是否同构
- leet code判断字符串是否同构
- 判断两棵二叉树是否同构
- 判断二叉树是否同构3.13
- c语言实现判断两颗树是否同构
- 判断两棵树是否是同构的C语言
- poj 1635 Subway tree systems 判断是否是同构树
- poj 1635 由搜索序列判断树是否同构
- poj-1635 Subway tree systems(判断两个有根树是否同构)-哈希法
- LeetCode-Isomorphic Strings:判断两个字符串是否同构(hashtable实现)
- POJ 1635 Subway tree systems(HASH+判断两棵有根树是否同构)
- 判断数A中是否存在一棵同构于B的子树
- C语言实现非递归的比较两个二叉树是否同构
- java 程序题 判断两个字符串是否是同构的(isIsomorphic)
- 亲测有效 Adobe PhotoShop CS6 for Mac(苹果)中文破解版下载及破解方法
- 方法的值传递和引用传递
- 关于Paint了解text绘制时的基线位置关系/测量字符的宽度
- 用Total Control在电脑操作手机
- java正则表达式
- 是否同构
- Java的InputStream和OutPutStream流输入与输出体会
- 如何在linux中实现软件的开机自动启动
- Qt中使用new之后没有delete
- windows 7/10远程ubuntu 16.04LTS多用户访问
- 链表求和问题
- Golang 上传文件
- 【用Python学习Caffe】6. 权重预设、预训练及微调
- 测试菜鸟关于selenium的学习