You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助编写Haskell递归函数noDupl:判断字符串无重复字符

实现Haskell递归函数noDupl

这里是满足需求的递归实现:

noDupl :: String -> Bool
noDupl [] = True
noDupl (x:xs) = not (x `elem` xs) && noDupl xs

逻辑说明

  • 基本情况:空字符串没有任何字符,不存在重复,直接返回True;单个字符的字符串拆分后xs为空,同样满足条件返回True。
  • 递归步骤:将输入字符串拆分为首字符x和剩余子串xs:
    1. 用elem检查x是否在xs中,若存在则说明有重复,返回False;
    2. 若x不在xs里,就递归调用noDupl检查剩余子串xs是否也无重复,只有前后条件都成立时才返回True。

示例验证

noDupl "abcde"  -- 输出 True
noDupl "aabcdee"  -- 输出 False

内容的提问来源于stack exchange,提问作者user2367

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 15:54:57