Golang面试题目-字符串是否一致验证

题目:给定字符串A、B,B为A排序后的结果,设计一算法验证A、B内容是否一致。

要求:

  1. 大小写为不同字符(考虑空格对算法精度的影响)。

  2. 输入字符串A、B,返回bool,true为相同,false为不同。

  3. 字符串A、B长度小于或等于5000。

解答:先验证字符串A、B长度小于或等于5000,之后只需要循环遍历B中的字符在A中是否都存在。

案例如下:

package main

import "strings"

func ABIsSame(strA, strB string) bool {
  ARune, BRune := []rune(strA), []rune(strB)
  if len(ARune) > 5000 || len(BRune) > 5000 || len(ARune) != len(BRune) {
    return false
  }

  for _, val := range BRune {
    if strings.Count(strB, string(val)) != strings.Count(strA, string(val)) {
      return false
    }
  }
  return true
}

上述代码核心是用Golang内置方法strings.Count验证字符是否⼀致。

题目:设计⼀个算法判断字符串中所有字符【是否全都不同】。指定⼀个string,返回bool,true意为所有字符全都不相同,false意为存在相同字符,字符串必须为ASCII字符,字符串长度小于或等于3000。

要求:不允许使⽤额外的存储结构。 

要点分析:

  1. ASCII字

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luyaran

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值