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. }






  • 相关阅读:
    Promise
    includes()
    常见的数组去重方法
    concat()
    面试感想
    常见的前端面试题
    让div水平垂直居中的几种方法
    实现斐波拉契的几种方法
    使用lib-flexible
    什么是token
  • 原文地址:https://www.cnblogs.com/xiejunzhao/p/bd6d51f34f6d8d1c43ad4abada327833.html
Copyright © 2011-2022 走看看