题解 | 在字符串中找出连续最长的数字串

package main

import (
	"fmt"
	"strings"
)

func isNo(b byte) bool {
	return b >= '0' && b <= '9'
}

func main() {
	for {
		var input string
		// input = "abcd12345ed125ss123058789"
		n, err := fmt.Scan(&input)
		if n == 0 || err != nil {
			return
		}

		var r []string
		maxLen := 0
		tmp := []byte{}

		for _, b := range []byte(input) {
			// fmt.Println(string(b))
			if isNo(b) {
				tmp = append(tmp, b)
			} else {
				if len(tmp) >= maxLen {
					if len(tmp) > maxLen {
						r = []string{}
					}

					r = append(r, string(tmp))
					maxLen = len(tmp)
					// fmt.Println(r)
				}

				tmp = []byte{}
			}
		}

		if len(tmp) >= maxLen {
			if len(tmp) > maxLen {
				r = []string{}
			}

			r = append(r, string(tmp))
			maxLen = len(tmp)
		}

		fmt.Printf("%v,%v\n", strings.Join(r, ""), maxLen)
	}
}

全部评论

相关推荐

06-02 15:17
门头沟学院 Java
心爱的idea:怎么会呢 应该是打招呼有问题 问就说实习6个月全国可飞随时到岗
点赞 评论 收藏
分享
程序员小白条:你是沟通了900个,不是投了900份简历,你能投900份,意味着对面都要回复你900次,你早就找到实习了,没亮点就是这样的,别局限地区,时间投的也要早,现在都要7月了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务