gpt4 book ai didi

string - 我如何将字符串转换为元组

转载 作者:行者123 更新时间:2023-12-02 01:47:09 24 4
gpt4 key购买 nike

你好,我们必须创建一个代码,例如将“1T3e1s1t”转换为 [(1,'T'),(3,'e'),(1,'s'),(1,'t') ]

这是我的代码

unformat :: String -> [(Int, Char)]
unformat [] = []
unformat (x:xs) = [(unformat' + 1, x)] ++ unformat xss
where
unformat' = length (takeWhile (== x)xs)
xss = drop unformat' xs

它可以工作,但输出是“1T3e” -> [(1,'1'),(1,'T'),(1,'3'),(1,'e')]除了 takeWhile - drop 函数之外,我收到错误。我也尝试过使用复制函数,但输出再次错误

unformat :: String -> [(Int, Char)]
unformat [] = []
unformat (x:xs) = (replicate (fst x) (snd x)) ++ unformat xs

我真诚地感谢任何形式的帮助

最佳答案

您还可以通过列表开头的多个元素进行模式匹配(例如 a:b:xs):

module Main where

import Data.Char

main = print $ unformat "1T3e1s1t" -- [(1,'T'),(3,'e'),(1,'s'),(1,'t')]

unformat :: String -> [(Int, Char)]
unformat (i:c:xs) = (digitToInt i, c) : unformat xs
unformat _ = []

Data.Char.digitToInt'0' 转换为 0,将 'f' 转换为 例如,15

关于string - 我如何将字符串转换为元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70777812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com