力扣题解之Julia语言!Ponte_Vecchio?

抖店动销抖店体验分提升抖店任何业务可添加微信:ad07668

9.检测大写字母我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如"USA"。单词中所有字母都不是大写,比如"leetcode"。如果单词不只含有一个字母,只有首字母大写,比如"Google"。给你一个字符串word。如果大写用法正确,返回true;否则,返回false。提示:1<=word.length&lt

9.检测大写字母

我们定义,在以下情况时,单词的大写用法是正确的:

全部字母都是大写,比如 "USA" 。

单词中所有字母都不是大写,比如 "leetcode" 。

如果单词不只含有一个字母,只有首字母大写, 比如 "Google" 。

给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。

提示:

  • 1 <= word.length <= 100
  • word 由小写和大写英文字母组成

思路和算法

字符串匹配问题最简单的就是正则表达式

function solution(s)
    r = r"(^[A-Z]+$)|(^[a-z]+$)|(^[A-Z][a-z]+$)"
    occursin(r,s)
end

正则表达式

Julia 具有与 Perl 兼容的正则表达式 (regexes),就像 PCRE 包所提供的那样,详细信息参见 PCRE 的语法说明。 正则表达式以两种方式和字符串相关:一个显然的关联是,正则表达式被用于找到字符串中的正则模式;另一个关联是,正则表达式自身就是作为字符串输入,它们被解析到可用来高效搜索字符串中模式的状态机中。在 Julia 中正则表达式的输入使用了前缀以 r 开头的标识符的非标准字符串字面量。若要检查正则表达式是否匹配某字符串,就用 occursin

力扣题解之Julia语言!Ponte_Vecchio?

不过正则表达式的写法有时候很难写出来。我们也可以用下面的方法。从后往前遍历,判断最后一个字符的大小写情况,然后逐步判断查找不合符要求的结果。我们可以定义一个标识,用来判断字符串最后一个元素是大写还是小写

1.若为大写,则flag为false。那么字符串中所有的字符都应该为大写,若出现小写则返回false

2.若为小写,则flag为true,那么字符串中要么所有的字符都为小写,要么只有首字母为大写

function solution(s)
    rs = Iterators.reverse(s)
    next = iterate(rs)
    (item,state) = next
    flag = islowercase(item)
    next = iterate(rs,state)
    while next !== nothing
        (item, state) = next
        if flag && isuppercase(item)
            if state != 0
                return false
            end
        elseif !flag && islowercase(item)
            return false
        end    
        next = iterate(rs, state)
    end
    return true
end
solution("Ua")

抖店动销抖店体验分提升抖店任何业务可添加微信:ad07668

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.zg8899.cn/24188.html