题解 | #字符串分隔#

字符串分隔

https://www.nowcoder.com/practice/d9162298cb5a437aad722fccccaae8a7

package main

import (
	"fmt"
	"strings"
)

func main() {
	var input string
	fmt.Scan(&input)

	// 按长度为8拆分字符串
	splitStrings := splitString(input)

	// 输出拆分后的字符串
	for _, str := range splitStrings {
		fmt.Println(str)
	}
}

func splitString(input string) []string {
	var splitStrings []string

	// 按长度为8拆分字符串
	for len(input) >= 8 {
		splitStrings = append(splitStrings, input[:8])
		input = input[8:]
	}

	// 如果剩余字符串长度不足8,则在后面补0
	if len(input) > 0 {
		input = input + strings.Repeat("0", 8-len(input))
		splitStrings = append(splitStrings, input)
	}

	return splitStrings
}

正确示例

以下是使用Go语言实现的代码示例,用于按长度为8拆分输入的字符串并进行输出:

package main

import (
	"fmt"
	"strings"
)

// 按长度为8拆分字符串并进行输出
func splitString(str string) []string {
	// 获取字符串长度
	length := len(str)
	
	// 计算需要补充0的个数
	padding := 8 - length%8
	
	// 在字符串末尾补充0
	str = str + strings.Repeat("0", padding)
	
	// 拆分字符串为长度为8的子串
	var result []string
	for i := 0; i < len(str); i += 8 {
		result = append(result, str[i:i+8])
	}
	
	return result
}

func main() {
	// 连续输入字符串
	var inputStrings []string
	var str string
	inputStrings = append(inputStrings, str)
	
	// 按长度为8拆分并输出新字符串
	for _, str := range inputStrings {
		substrings := splitString(str)
		for _, s := range substrings {
			fmt.Println(s)
		}
	}
}

这段代码会从标准输入连续读取字符串,并将它们存储在一个字符串切片中。然后,对每个输入的字符串,调用 splitString 函数来按长度为8拆分字符串并进行输出。最后,将拆分后的字符串逐行打印到标准输出。

请注意,以上代码假设输入的字符串以空格分隔。你可以根据实际需求进行相应的修改,以适应不同的输入形式。

错误示例:

// package main

// import (
// 	"bufio"
// 	"fmt"
// 	"os"
// )

// func main() {
// 	reader := bufio.NewReader(os.Stdin)
// 	str, _ := reader.ReadString('\n')
// 	res := make([][]byte, len(str))
// 	i := 0
// 	res[(i+1)/8] = append(res[(i+1)/8], str[i])
// 	for i = 1; i < len(str); i++ {
// 		if i%8 != 0 {
// 			res[i/8] = append(res[i/8], str[i])
// 		} else {
// 			res[i/8] = append(res[i/8], ' ')
// 			res[i/8] = append(res[i/8], str[i])

// 		}
// 	}
// 	for _, v := range res {
// 		if len(v) == 8 {
// 			for _, m := range v {
// 				fmt.Print(string(m))
// 			}
// 		} else if len(v) < 8 {
// 			for _, m := range v {
// 				fmt.Print(string(m))
// 			}
// 			// for i := len(v); i < 8; i++ {
// 			// 	fmt.Print(0)

// 			// }
// 		}
// 	}
// }

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-03 17:37
点赞 评论 收藏
分享
八股刚起步,看了javaguide,小林coding,还有面渣,感觉面渣是体验最好的,请问只看面渣够用吗,有不完善的需要补吗?
码农索隆:先背最基础的知识,然后理解情景题,现在面试大多数喜欢问情景题,更考验面试者的基础和临场发挥情况
点赞 评论 收藏
分享
Twilight_m...:经典我朋友XXXX起手,这是那种经典的不知道目前行情搁那儿胡编乱造瞎指导的中年人,不用理这种**
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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