Merge pull request #204 from gostool/leetcode1446

Leetcode1446
This commit is contained in:
halfrost
2021-12-22 19:17:11 -08:00
committed by GitHub
3 changed files with 158 additions and 0 deletions

View File

@ -0,0 +1,22 @@
package leetcode
func maxPower(s string) int {
cur := s[0]
cnt := 1
ans := 1
for i := 1; i < len(s); i++ {
if cur == s[i] {
cnt++
} else {
if cnt > ans {
ans = cnt
}
cur = s[i]
cnt = 1
}
}
if cnt > ans {
ans = cnt
}
return ans
}

View File

@ -0,0 +1,60 @@
package leetcode
import (
"fmt"
"testing"
)
type question1446 struct {
para1446
ans1446
}
// para 是参数
type para1446 struct {
s string
}
// ans 是答案
type ans1446 struct {
ans int
}
func Test_Problem1446(t *testing.T) {
qs := []question1446{
{
para1446{"leetcode"},
ans1446{2},
},
{
para1446{"abbcccddddeeeeedcba"},
ans1446{5},
},
{
para1446{"triplepillooooow"},
ans1446{5},
},
{
para1446{"hooraaaaaaaaaaay"},
ans1446{11},
},
{
para1446{"tourist"},
ans1446{1},
},
}
fmt.Printf("------------------------Leetcode Problem 1446------------------------\n")
for _, q := range qs {
_, p := q.ans1446, q.para1446
fmt.Printf("【input】:%v 【output】:%v\n", p.s, maxPower(p.s))
}
fmt.Printf("\n\n\n")
}

View File

@ -0,0 +1,76 @@
# [1446. Consecutive Characters](https://leetcode-cn.com/problems/consecutive-characters/)
## 题目
The power of the string is the maximum length of a non-empty substring that contains only one unique character.
Given a string s, return the power of s.
**Example 1**:
Input: s = "leetcode"
Output: 2
Explanation: The substring "ee" is of length 2 with the character 'e' only.
**Example 2**:
Input: s = "abbcccddddeeeeedcba"
Output: 5
Explanation: The substring "eeeee" is of length 5 with the character 'e' only.
**Example 3**:
Input: s = "triplepillooooow"
Output: 5
**Example 4**:
Input: s = "hooraaaaaaaaaaay"
Output: 11
**Example 5**:
Input: s = "tourist"
Output: 1
**Constraints:**
- 1 <= s.length <= 500
- s consists of only lowercase English letters.
## 题目大意
给你一个字符串 s ,字符串的「能量」定义为:只包含一种字符的最长非空子字符串的长度。
请你返回字符串的能量。
## 解题思路
- 顺序遍历进行统计
## 代码
```go
package leetcode
func maxPower(s string) int {
cur := s[0]
cnt := 1
ans := 1
for i := 1; i < len(s); i++ {
if cur == s[i] {
cnt++
} else {
if cnt > ans {
ans = cnt
}
cur = s[i]
cnt = 1
}
}
if cnt > ans {
ans = cnt
}
return ans
}
```