每日一题 【每日一题】比较两个字符串-Python-20210830

Jack · 2021年08月30日 · 最后由 lework 回复于 2021年12月16日 · 87 次阅读
本帖已被设为精华帖!
  1. 问题描述: 比较字符串 A 和 B,A 和 B 中的字符串都是大写字母,确定 A 中是否包含 B 中所有字符串
  2. 问题示例: A = "ABCD" B = "ACD" 返回 True
Jack 将本帖设为了精华贴 08月30日 22:09

参考代码:

class Solution:
    def compareString(self, A, B):
        if len(B) == 0:
            return True
        if len(A) == 0:
            return True
        trackTable = [ 0 for _ in range(26) ]
        for i in A:
            trackTable[ord(i) - 65] += 1
        for i in B:
            if trackTable[ord(i) - 65] == 0:
                return False
            else:
                trackTable[ord(i) - 65] -= 1
        return True
package main

import "fmt"


func compareString(a,b string) bool {

    if len(b) == 0 {
        return true
    }
    if len(a) == 0  {
        return true
    }

    aList := []byte(a)
    bList := []byte(b)
    cList := make([]int,26) // 生成26个字母的对应list

    for _, val := range aList {
        cList[val-65]++  // 标记 a 中的字符
    }

    for _, val := range bList {
        if cList[val-65] == 0 {
            return false  // b 中的字符不在 a 里,直接返回 false
        }
    }

    return true
}

func main() {
    /*
        问题描述: 比较字符串 A 和 B,A 和 B 中的字符串都是大写字母,确定 A 中是否包含 B 中所有字符串
        问题示例: A = "ABCD" B = "ACD" 返回 True
    */

    var (
        a = "ABCD"
        b = "ACD"
    )

   fmt.Println(compareString(a,b))
}
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册