博客
关于我
1704 - 判断字符串的两半是否相似 - 模拟
阅读量:708 次
发布时间:2019-03-21

本文共 1382 字,大约阅读时间需要 4 分钟。

1223 题目描述

给定一个偶数长度的字符串 s,将其拆分成长度相同的两半,前一半为 a,后一半为 b。如果两个字符串相似,则返回 true,否则返回 false。两个字符串相似指的是它们都含有相同数目的元音(‘a’,‘e’,‘i’,‘o’,‘u’,‘A’,‘E’,‘I’,‘O’,‘U’)。注意,s 可能同时含有大写和小写字母。

示例

示例 1:输入:"book"输出:true解释:a = "bo"b = "ok"a 中有 1 个元音,b 也有 1 个元音。所以,ab 相似。

示例 2:输入:"textbook"输出:false解释:a = "text"b = "book"a 中有 1 个元音,b 中有 2 个元音。因此,ab 不相似。

示例 3:输入:"MerryChristmas"输出:false示例 4:输入:"AbCdEfGh"输出:true

方法一 模拟统计法

思路

  • 创建一个包含所有元音字母的小写和大写数组。
  • 定义一个函数 isYuan,用于判断一个字符是否是元音字母。
  • 遍历字符串,分别统计前半部分和后半部分的元音数目。
  • 如果前半部分和后半部分的元音数目相同,返回 true,否则返回 false
  • 解题思路

  • 创建一个包含所有元音字母的字符数组。
  • 定义用于检查字符是否为元音的函数 isYuan
  • 使用计数器分别记录前半部分和后半部分的元音数目。
  • 比较两部分的元音数目,返回结果。
  • 方法实现

    package mainimport (    "bytes")func isYuan(c byte) bool {    meta := []byte{        'a', 'e', 'i', 'o', 'u',        'A', 'E', 'I', 'O', 'U',    }    for _, v := range meta {        if v == c {            return true        }    }    return false}func halvesAreAlike(s string) bool {    length := len(s)    lenHalf := length / 2    countA := 0    countB := 0    crossCount := 0    for i := 0; i < length; i++ {        if isYuan(s[i]) {            switch {            case i < lenHalf:                countA++            case i >= lenHalf:                countB++            default:                crossCount++            }        }    }    return (countA + crossCount) == (countB + crossCount)}

    其他注意事项

    • 时间复杂度:O(n)
    • 空间复杂度:O(n)
    • 联系作者(如有):随便一个名字@么么哒的联系邮箱xxx@xxx.com

    转载地址:http://uowrz.baihongyu.com/

    你可能感兴趣的文章
    PbootCMS 前台RCE漏洞复现
    查看>>
    PBT
    查看>>
    PB级分析型数据库ClickHouse的应用场景和特性
    查看>>
    pc3-12800
    查看>>
    PCA---主成成分分析
    查看>>
    PCA和自动编码器:每个人都能理解的算法
    查看>>
    pca算法
    查看>>
    PCA降维demo
    查看>>
    SharePoint 2013 图文开发系列之定义站点模板
    查看>>
    PCB生产流程详解-ChatGPT4o作答
    查看>>
    PCB设计十条黄金法则
    查看>>
    SpringSecurity框架介绍
    查看>>
    PCI Express学习篇:Power Management(二)
    查看>>
    pcie握手机制_【博文连载】PCIe扫盲——Ack/Nak 机制详解(一)
    查看>>
    pcm转wav的方法及代码示例
    查看>>
    PC史上最悲剧的16次失败
    查看>>
    PC端恶意代码分析Lab1.1-5.1,从零基础到精通,收藏这篇就够了!
    查看>>
    PC端稳定性测试探索
    查看>>
    PC端编辑 但能在PC端模拟移动端预览的富文本编辑器
    查看>>
    PDB文件:每个开发人员都必须知道的
    查看>>