zoukankan      html  css  js  c++  java
  • 205. 判断两个字符串的模式是否相同 Isomorphic Strings

    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.

    For example,
    Given "egg""add", return true.

    Given "foo""bar", return false.

    Given "paper""title", return true.

    Note:
    You may assume both s and t have the same length.


    1. public class Solution {
    2. public bool IsIsomorphic(string s, string t) {
    3. if (s.Length != t.Length) {
    4. return false;
    5. }
    6. Dictionary<char, int> set = new Dictionary<char, int>();
    7. List<int> parS = new List<int>();
    8. int num = 1;
    9. foreach(var i in s) {
    10. int val;
    11. set.TryGetValue(i, out val);
    12. if (val != 0) {
    13. parS.Add(set[i]);
    14. } else {
    15. set[i] = num;
    16. parS.Add(set[i]);
    17. num++;
    18. }
    19. }
    20. List<int> parT = new List<int>();
    21. set.Clear();
    22. num = 1;
    23. foreach (var i in t) {
    24. int val;
    25. set.TryGetValue(i, out val);
    26. if (val != 0) {
    27. parT.Add(set[i]);
    28. } else {
    29. set[i] = num;
    30. parT.Add(set[i]);
    31. num++;
    32. }
    33. }
    34. for (var i = 0; i < parS.Count; i++) {
    35. if (parT[i] != parS[i]) {
    36. return false;
    37. }
    38. }
    39. return true;
    40. }
    41. }






  • 相关阅读:
    简单了解一下:var 、let、const
    C# FlagAttriute 的 小妙招
    项目经验面试题
    linux面试题详解
    jvm面试题详解
    数据库面试详解
    微服务框架面试题
    框架面试题(maven、ZooKeeper、Dubbo、Nginx、Redis、Lucene、Solr、ActiveMQ、JMS
    设计模式面试题详解
    WEB方面面试题详解
  • 原文地址:https://www.cnblogs.com/xiejunzhao/p/bd6d51f34f6d8d1c43ad4abada327833.html
Copyright © 2011-2022 走看看