反转字符串,但不反转整数

2024-03-20

面试问题:反转字符串,但仅反转字母字符。整数应保持其原始位置。

输入:“abc12de” 输出:“edc12ba”

输入:“abcde79” 输出:“edcba79”

输入:“123ab456” 输出:“123ba456”

下面是我的半工作代码。

def reverse_string(string):
    acc = ""
    l = []
    l.extend(string)
    for char in l:
        if char >= 0 and char <= 9:
            pass
        else:
            acc = char + acc

    return acc


print(reverse_string("abc12de"))

一种策略可能是从两端遍历指针,跳过数字。当找到两个非数字时,交换。当指针相遇时停止。您只需要注意当字符串全部是数字/字母时可能出现的边缘情况:

def rev(st):
    s = list(st)
    i = 0
    j = len(s)-1

    while i < j:  
        while (i < len(s) and s[i].isdigit() ):
            i += 1
        while (j >=0 and s[j]. isdigit()):
            j -= 1
        if i < j:
            s[j], s[i] = s[i], s[j]
        i += 1
        j -= 1

    return ''.join(s)

print(rev('123ab456'))
print(rev('abc12de'))
print(rev('abcde79'))
print(rev('1234'))
print(rev('abcd'))

result

123ba456
edc12ba
edcba79
1234
DCBA

另一种(可能)效率较低但更易于阅读的替代方案是按相反顺序生成所有字母的生成器,然后逐步遍历字符串next()来自字母生成器的字母或当前字符(如果它是数字):

def rev(string):
    reversed_letters = (s for s in string[::-1] if s.isalpha())
    news = ''
    for s in string:
        if s.isalpha():
            news+= next(reversed_letters)
        else:
            news += s
    return news
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

反转字符串,但不反转整数 的相关文章

随机推荐

  • 我可以通过编程方式向 WPF 数据网格添加一行吗?

    我只想添加一个新行 我的数据源位于需要进行一些处理的对象中 我需要像下面这样的 wpf 数据网格 DataRow row dataTable NewRow foreach NavItem item in record Items row i
  • 如何将数据绑定到非静态类上的静态属性?

    In my ViewModel类我有一个静态属性AllSupport但我不知道如何正确绑定它 ListView 已绑定到 ObservableCollectionAllEffects具有AllSupport静态属性 我用过这个
  • 在 PHP 邮件函数中设置 $headers 数组时遇到问题

    当我将 headers 数组指定为时 我无法通过 PHP 邮件函数发送电子邮件 headers array From gt email protected cdn cgi l email protection Content type gt
  • 悬停时模糊整个背景

    所以我的首页上有一些项目 其中显示了一些动漫 我想做的是 当你将鼠标悬停在第一个节目 Hunter X Hunter 上时 我希望页面上的所有其他内容 不包括悬停的内容 都变得模糊 我环顾四周 看到了一些例子 但我觉得我的情况有点不同 首页
  • PHP REST API 中的选项

    我正在用 PHP 编写 REST API 但找不到任何解释如何使用 OPTIONS 的资源 它似乎是 REST API 的重要组成部分 这就是我发现的内容 谁能解释 OPTIONS 应该包含什么以及它应该如何格式化 提前致谢 HTTP OP
  • 您在哪里进行验证?

    希望您会看到我在下面的场景中描述的问题 如果不清楚 请告诉我 您的应用程序分为三层 前端UI层 可以是asp net webform 或者window 用于编辑Person数据 中间层业务服务层 编译成dll PersonServices
  • 如何在 jenkins 2 管道中使用 FileParameterValue

    如何将当前项目工作区中的文件作为参数传递给另一个项目 例如就像是 build job otherproject parameters class FileParameterValue name output tar gz value wai
  • IntelliJ 中的“重新部署”和“重新启动服务器”有什么区别?

    我使用 IntelliJ 和 Tomcat 6 来运行 Spring Java EE 应用程序 我没有部署已编译的 war 而是选择使用分解的 war 部署 从而使我可以选择热交换一些类和 JSP 然而 除了 更新类 和 更新类和资源 之外
  • 不支持扫描,将 driver.Value 类型 []uint8 存储为类型 *time.Time

    我很难查询用户 其定义为 type User struct ID int db id json id UserName string db username json username Email string db email json
  • 正则表达式匹配字符串,不包含重复字符

    我正在寻找一个简单的正则表达式来匹配没有重复字符的字符串 例子 JHMCU26809C211501 good JHMGD18508S219366 good JHMCU268091111111 坏 12345678901234567 good
  • NULL 与 NOT NULL [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 检测到设备正在关闭?

    在我的 Android 应用程序中 如果设备突然关闭 我需要执行一些操作 有什么方法可以检测设备是否已关闭 广播操作 设备正在关闭 这是广播时 设备正在关闭 完全关闭 而不是睡眠 一次 广播完毕 将进行最后的关闭 所有 未保存的数据丢失 应
  • RecyclerView 的 GridLayoutManager 上的方形布局

    我尝试用方形图像制作网格布局 我认为一定可以操纵GridLayoutManager通过操纵onMeasure做一个 super onMeasure recycler state widthSpec widthSpec 代替 super on
  • 使用 apache2 作为 proxypass 时的 Apache OpenMeetings 4.0.4 CSRF 攻击

    我有 Apache OpenMeetings 4 0 4 女巫 Apache 2 2 22 作为代理 在 OM 的 conf red5 properties 中我有 http port 8080 我想做两件事 重定向 HTTP 80 gt
  • Laravel Jetstream 与 Intertia 不返回用户

    我已经安装了带有 Inertia 的 Jetstream 我注册一个用户 然后尝试登录 控制台给出以下错误 Vue warn Error in render TypeError vm page user is null 当我查看控制器的响应
  • SSRS - 如何使 IIF 语句忽略无效值

    我正在使用 Business Intelligence 2008 在 SSRS 中创建一个表 我有一个日期 作为字符串 作为表中使用的值之一 该值可能有一个表示日期的字符串 也可能为空 如果它有一个值 我希望该值以不同的方式格式化 现在 我
  • Google 自定义搜索 API - 排序/过滤

    无论如何 是否可以通过页面标题标签或某些元标签来过滤结果 我阅读了文档 但一团糟 有人有想法吗 是的 您可以对自定义元标记进行排序和过滤 首先 将要过滤的数据放入元标签 https developers google com custom
  • iOS 4核心横向运动姿态

    我一直在尝试根据从 CMMotionManager 返回的 CMAttitude 旋转视图 特别是俯仰 x 和滚动 y 我用参考态度来设定我的视野 这对于纵向模式非常有效 但是当我尝试在横向视图中执行此操作时 它就出错了 由于手机现在逆时针
  • 隐藏 JSON.stringify() 输出中的某些值

    是否可以排除某些字段不包含在 json 字符串中 这是一些伪代码 var x x 0 y 0 divID xyz privateProperty1 foo privateProperty2 bar 我想排除 privateProperty1
  • 反转字符串,但不反转整数

    面试问题 反转字符串 但仅反转字母字符 整数应保持其原始位置 输入 abc12de 输出 edc12ba 输入 abcde79 输出 edcba79 输入 123ab456 输出 123ba456 下面是我的半工作代码 def revers