每日一题 【每日一题】字符串之一 删除字符串

Jack · 2021年08月21日 · 最后由 lework 回复于 2021年12月27日 · 80 次阅读
本帖已被设为精华帖!
  1. 问题描述: 输入两个字符串 s 和 t,判断 s 能否在删除一些字符串后得到 t
  2. 问题示例: 输入: s = "abc", t = "c" 输出: True
Jack 将本帖设为了精华贴 08月21日 08:38

参考代码:

class Solution:
    def canGetString(self, s, t):
        pos = 0
        for x in t:
            while pos < len(s) and s[pos] != x:
                pos += 1
            if pos == len(s):
                return False
            pos += 1
        return True

pos 是标记 s 字符串下标 一直没找到,pos 最终会多加 1 跟 s 长度一样就返回 false; 找到了就标记 +1 ,下个 t 字符从 s 字符串 pos 标记 +1 开始找 (膜拜曾老师)

package main

import "fmt"

func CanGetString(s string, t string) bool  {
    pos := 0
    sArr := []byte(s)
    sLen := len(sArr)

    for _, c:= range t {
        for pos < sLen && int32(sArr[pos]) != c {
            pos += 1
        }
        if pos == sLen {
            return false
        }
        pos += 1
    }
    return true
}

func main() {
    /*
    问题描述: 输入两个字符串 s 和 t,判断 s 能否在删除一些字符串后得到 t
    问题示例: 输入: s = "abc", t = "c" 输出: True
    */

    var (
        s = "abc"
        t = "c"
    )
    fmt.Println(CanGetString(s, t))
}
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册