列表

详情


NC229020. 优美字符串

描述

给了一个由小写英文字母组成的字符串,但是觉得这个串太丑,觉得一个优美的字符串应该满足任意相邻字符都不相等,她想知道把给定字符串变成一个优美的字符串最少需要插入多少个字符,你只要告诉她,插入最少字符后的串的长度

输入描述

第一行一个数T(1≤T≤10)
接下来T行,每行一个有且仅有小写英文字母构成的字符串s(1≤|s|≤100000)

输出描述

输出T行,每行一个数,表示美化后串的最短长度

示例1

输入:

4
a
ab
abbc
aaabb

输出:

1
2
5
8

说明:

样例解释
第一个第二个不用动
第三个可以改成ababc
第四个可以改成abababab

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Go 解法, 执行用时: 1380ms, 内存消耗: 5392K, 提交时间: 2023-08-13 13:31:15

package main
import "fmt"
func solve(a string)(ans int){
	ans=len(a)
	for i:=0;i<len(a) - 1;i++{
		if a[i] == a[i + 1]{
			ans++
		}
	}
	return ans
}
func main(){
	var t int
	fmt.Scanln(&t)

	for i:=0;i<t;i++{
		var a string
		fmt.Scanln(&a)
		fmt.Println(solve(a))
	}
}

Python3 解法, 执行用时: 320ms, 内存消耗: 5528K, 提交时间: 2023-08-13 13:30:55

for i in range(int(input())):
    s = input()
    print(len([j for j in range(1, len(s)) if s[j] == s[j-1]]) + len(s))

上一题