理解同构字符串算法

2024-04-26

我理解以下代码来查找字符串是否同构。该代码使用两个哈希值s_dict and t_dict分别。我假设字符串的长度相同。

def isIsomorphic(s, t):
    s_dict = {}
    t_dict = {}
    for i in range(len(s)):
        if s[i] in s_dict.keys() and s_dict[s[i]] != t[i]:
            return False
        if t[i] in t_dict.keys() and t_dict[t[i]] != s[i]:
            return False
        s_dict[s[i]] = t[i]
        t_dict[t[i]] = s[i]
    return True

现在,如果我修改上面的代码,使得只有一个散列s_dict()使用,那么它也为我有限的测试用例提供了所需的结果。修改后的代码如下:

def isIsomorphic(s, t):
    s_dict = {}
    for i in range(len(s)):
        if s[i] in s_dict.keys() and s_dict[s[i]] != t[i]:
            return False
        s_dict[s[i]] = t[i]
    return True

上述修改后的代码在哪些测试用例中会失败?我对同构字符串的理解是错误的吗?


一个简单的例子,您的代码不适用于 s='ab',t='aa'。

基本上你必须同时拥有两种方式才能同构。您的代码仅检查 t 是否可以从 s 修改,但反之则不然。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

理解同构字符串算法 的相关文章

随机推荐

  • 如何调用 ActiveRecord 验证器作为实例方法(ala Sequel)?

    我有一个模型 根据其当前状态需要不同的验证器 我应该如何为每个实例调用 ActiveRecord 验证器 我想尽可能多地重复使用管道 但我不知道如何继续 class Order lt ActiveRecord Base attr acces
  • 更改 gltf 对象颜色的问题

    有了这个答案作为参考 我已经成功改变了gltf模型的颜色 更改 AR JS 中对象 dae 或 gltf 的颜色 https stackoverflow com questions 58589525 change the color of
  • Android 中什么原因导致 MotionEvent.ACTION_CANCEL?

    我正在调试 Android 上的一些触摸处理内容 并试图找出为什么 MotionEvent 发送到我的视图onTouchListener包含一个cancel行动 我无法找到任何有关其原因的文档 并且希望有人能为我指出调试此问题的正确方向 错
  • Neo4jClient - 从 Neo4jClient 中创建索引?

    有没有办法在 Neo4jClient 中创建索引 我已经完成了原始查询 但认为这不是最好的选择 我这样做的原因是出于测试目的 我需要删除 重新创建数据库来测试不同设计的性能 你可以做这样的索引 graphClient Cypher Crea
  • 在 div 标签中垂直居中图像[重复]

    这个问题在这里已经有答案了 可能的重复 图像垂直和水平居中 CSS https stackoverflow com questions 2478434 center an image vertically and horizontally
  • d3 单击时聚焦于节点

    我正在尝试实现一种力布局 其中单击节点将能够专注于节点周围的区域 我看过一些例子 但我收到一个错误 上面写着link bounds is not defined 我认为边界没有为力布局定义 并且适用于我从中获取聚焦功能的示例http bl
  • 获取表中两组不同行的计数,然后将它们分开

    我对 MySQL 很陌生 我正在尝试提出一个基本上可以执行以下操作的查询 select from tasks where completed 1 除以 select from tasks where completed 0 我已经找到了解决
  • 我可以定义一个具有与每个值的键对应的值约束的 Typescript 映射吗?

    In 这个游乐场 https www typescriptlang org play code KYDwDg9gTgLgBASwHY2FAZgQwMbDgQQCMBnGKHGfbGBCJOAbwCg44YBPMYALjlKmQBzANwtE
  • 由 VBScript 运行的 xPath 中的未知方法

    错误消息是 msxml3 dll 未知方法 Record CelloXml Integration Case ServiceEvent gt last 我的代码如下所示 错误出在案例上NEW Case OLD可以很好地配合 0 在那里 On
  • 为什么 lambda 比 IL 注入动态方法更快?

    我刚刚构建了动态方法 见下文 感谢其他 SO 用户 看起来 Func 创建为动态方法 IL 注入比 lambda 慢 2 倍 有谁知道具体原因吗 编辑 这是在 VS2010 中构建为 x64 版本的 请从控制台而不是从 Visual Stu
  • 添加新的 ApplicationBarMenuItem 图标时无法分配给属性

    我添加了一个新的ApplicationBarMenu带有图标的按钮到我的 wp7 项目中的页面 当尝试运行页面时我得到 无法分配给属性 Microsoft Phone Shell ApplicationBarIconButton Click
  • 为量角器安装特定的 chromedriver

    我在 CircleCi 上运行的 chrome 驱动程序遇到问题 问题是运行时 node modules bin webdriver manager update 然后使用以下命令检查 chromedriver 和 selenium 的版本
  • html中的有什么用?

    看起来它允许您编辑元素的内容 但实际上发生了什么 这个属性有什么用呢 编辑 参见here http www w3 org TR html5 editing html contenteditable 这通常用于富文本输入 虽然常规表单元素如
  • Python 代码中标识符错误中的无效字符

    对于以下代码 我收到 标识符中的无效字符 错误 显示错误时 第 3 行中的 http 会突出显示 我是Python新手 请帮忙 import requests import html r requests get http cricapi
  • “找不到符号:方法”但该方法已声明

    在我的驱动程序中 这一行给了我cannot find symbol错误 我不知道为什么 该方法在SavingsAccount类 我可以引用我的驱动程序中的所有其他方法 但不是那个方法 我尝试将类型更改为double等但仍然无法正常工作 Ac
  • 是否可以在 C# 中观察 Rss feed 变化?

    我想创建一个服务来监听一些 Rss 提要并将新提要解析为 json 以供进一步使用 是否可以观察饲料的变化 如果可以 那么如何观察 thanks 查看System ServiceModel Syndicate SynminationFeed
  • 检查 Laravel 控制器中的多个守卫

    我在 laravel 中创建了三种类型的守卫 我可以检查身份验证用户 但我们有一些对所有用户都相同的路由和控制器 我需要为每种类型的登录用户检查相同路由或控制器中的所有守卫 我的 auth php 文件看起来像这样
  • 如何在ios中以编程方式安排事件?

    我的任务是编写一个应用程序 允许用户安排将来发送的电子邮件 用户从日期选择器中选择日期时间 撰写消息和收件人 然后安排事件 当日期 时间出现时 消息就会被发送出去 有人可以指导我如何安排日程安排吗 比如说短信 我知道如何发送短信 只是不确定
  • AWS lambda 基本身份验证,无需自定义授权者

    我在为用 Node js 编写的 AWS lambda 函数设置基本身份验证时遇到问题 问题 AWS lambda 函数是附加服务的代理 该函数仅转发整个请求并向用户提供整个响应 这就是为什么我需要强制使用Authentication标题
  • 理解同构字符串算法

    我理解以下代码来查找字符串是否同构 该代码使用两个哈希值s dict and t dict分别 我假设字符串的长度相同 def isIsomorphic s t s dict t dict for i in range len s if s