如何从字符串中删除空格/哈希并用特定长度的哈希替换它们?

高拉夫巴斯卡

我想以一种将删除所有额外空格和散列的方式更改数字字符串,并且输出将具有正确长度的带有散列的正确字符串。除非字符串的剩余长度为 2 或 4,否则它必须在每 3 个数字之后。

我尝试使用的代码能够给我一半的结果,我无法编写一个代码,其中字符串的剩余长度为 4,然后将它们分成 2,中间有一个哈希值。它将剩余的 4 也分为 3 和 1。例如 - 1234 必须是 12-34 而不是 123-1。

def solution(s):
    # this will remove all extra spaces and hashes
    number = "".join(s.split()).replace('-','')
    return '-'.join(number[i:i+3] for i in range(0, len(number), 3))


print(solution("00-44  48 5555 8361")) # Output is 004-448-555-583-61
print(solution("0 - 22 1985--324")) # Output is 022-198-532-4 (not expected)

输出必须如下所示:

print(solution("00-44  48 5555 8361")) # Expected O/P - 004-448-555-583-61
print(solution("0 - 22 1985--324")) # Expected O/P -  022-198-53-24
粘贴

我认为您的代码无法按预期工作的原因很明显 - 以贪婪的方式在每个第三个字符之间放置一个连字符,就像您正在做的那样将len(number)%3在字符串的末尾留下(0、1 或 2)个字符。根据您的要求,您需要担心的只是剩余 1 个字符的情况:

  1. "123-456-789" 剩余零个字符,这很好。
  2. "123-456-789-0"剩下一个字符,但应该是"123-456-78-90
  3. "123-456-789-01" 有两个剩余的字符,这很好。
  4. "123-456-789-012" 剩下三个字符,但它与上面的 (1.) 相同,所以没问题。

这意味着您所要做的就是专门处理剩余一个字符的情况。更好的是,您需要做的就是交换倒数第三个和倒数第二个字符,如下所示:

"123-456-789-0"  # this is wrong
#          ^^
#          ||    # swap these two, however, and you get...
"123-456-78-90"  # the correct output

所以你可以保留你的原始代码并在最后添加一个简单的检查来进行交换。不幸的是,字符串在 python 中是不可变的,所以你必须用交换的字符重建一个新的字符串。这样做很长的路要走:

def solution(s):
    # this will remove all extra spaces and hashes
    number = "".join(s.split()).replace('-','')
    dashed = '-'.join(number[i:i+3] for i in range(0, len(number), 3))
    if len(number)%3 == 1:
        dashed = dashed[:-3] + "-" + dashed[-3::2]
    return dashed

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从字符串中删除一定长度的空格

来自分类Dev

替换Java字符串中的特定长度的子字符串

来自分类Dev

如何用哈希值替换字符串中的字母

来自分类Dev

在固定长度文件的特定位置替换特定行中的字符串

来自分类Dev

查询删除字符串中特定长度的字符词?

来自分类Dev

Pandas - 在多列中替换具有特定长度的字符串

来自分类Dev

PHP:生成具有给定长度的字符串的哈希函数

来自分类Dev

从数据框中删除不包含特定长度字符串的行

来自分类Dev

如何删除字符串中的空格并批量替换为(;)

来自分类Dev

从列表中获取特定长度的字符串

来自分类Dev

模式匹配sql中特定长度的字符串

来自分类Dev

在冷融合中给字符串指定特定长度

来自分类Dev

获取 DTL 模板中字符串的特定长度

来自分类Dev

如何设置特定长度的特定 faker 随机字符串并使用下划线作为空格?

来自分类Dev

如何从小于一定长度的数组中删除字符串?

来自分类Dev

如何用哈希图中的char替换字符串?

来自分类Dev

如何从特定字符串中删除多余的空格?

来自分类Dev

如何在字符串python中删除特定的空格

来自分类Dev

如何在字符串python中删除特定的空格

来自分类Dev

使用 grep 递归搜索任何没有空格的特定长度的字符串

来自分类Dev

删除数组的Perl哈希中的空字符串

来自分类Dev

删除数组的Perl哈希中的空字符串

来自分类Dev

如何使用哈希图从Java中的Unicode字符串中删除重音符号?

来自分类Dev

如何使用哈希图从Java中的Unicode字符串中删除重音符号?

来自分类Dev

字符串中字符串的固定长度

来自分类Dev

如何从特定索引的字符串中快速删除子字符串到某个长度

来自分类Dev

删除特定长度的字符

来自分类Dev

如何删除字符串中的所有空格并将数据存储在它们之间?

来自分类Dev

sed查找并用空格替换字符串

Related 相关文章

  1. 1

    从字符串中删除一定长度的空格

  2. 2

    替换Java字符串中的特定长度的子字符串

  3. 3

    如何用哈希值替换字符串中的字母

  4. 4

    在固定长度文件的特定位置替换特定行中的字符串

  5. 5

    查询删除字符串中特定长度的字符词?

  6. 6

    Pandas - 在多列中替换具有特定长度的字符串

  7. 7

    PHP:生成具有给定长度的字符串的哈希函数

  8. 8

    从数据框中删除不包含特定长度字符串的行

  9. 9

    如何删除字符串中的空格并批量替换为(;)

  10. 10

    从列表中获取特定长度的字符串

  11. 11

    模式匹配sql中特定长度的字符串

  12. 12

    在冷融合中给字符串指定特定长度

  13. 13

    获取 DTL 模板中字符串的特定长度

  14. 14

    如何设置特定长度的特定 faker 随机字符串并使用下划线作为空格?

  15. 15

    如何从小于一定长度的数组中删除字符串?

  16. 16

    如何用哈希图中的char替换字符串?

  17. 17

    如何从特定字符串中删除多余的空格?

  18. 18

    如何在字符串python中删除特定的空格

  19. 19

    如何在字符串python中删除特定的空格

  20. 20

    使用 grep 递归搜索任何没有空格的特定长度的字符串

  21. 21

    删除数组的Perl哈希中的空字符串

  22. 22

    删除数组的Perl哈希中的空字符串

  23. 23

    如何使用哈希图从Java中的Unicode字符串中删除重音符号?

  24. 24

    如何使用哈希图从Java中的Unicode字符串中删除重音符号?

  25. 25

    字符串中字符串的固定长度

  26. 26

    如何从特定索引的字符串中快速删除子字符串到某个长度

  27. 27

    删除特定长度的字符

  28. 28

    如何删除字符串中的所有空格并将数据存储在它们之间?

  29. 29

    sed查找并用空格替换字符串

热门标签

归档