Merge pull request #2357 from Freshield/master

Fix: 修正markdown中的tab为空格,排除显示的问题
This commit is contained in:
程序员Carl
2023-12-09 22:21:46 +08:00
committed by GitHub

View File

@ -190,45 +190,45 @@ package main
import "fmt" import "fmt"
func replaceNumber(strByte []byte) string { func replaceNumber(strByte []byte) string {
// 查看有多少字符 // 查看有多少字符
numCount, oldSize := 0, len(strByte) numCount, oldSize := 0, len(strByte)
for i := 0; i < len(strByte); i++ { for i := 0; i < len(strByte); i++ {
if (strByte[i] <= '9') && (strByte[i] >= '0') { if (strByte[i] <= '9') && (strByte[i] >= '0') {
numCount ++ numCount ++
} }
} }
// 增加长度 // 增加长度
for i := 0; i < numCount; i++ { for i := 0; i < numCount; i++ {
strByte = append(strByte, []byte(" ")...) strByte = append(strByte, []byte(" ")...)
} }
tmpBytes := []byte("number") tmpBytes := []byte("number")
// 双指针从后遍历 // 双指针从后遍历
leftP, rightP := oldSize-1, len(strByte)-1 leftP, rightP := oldSize-1, len(strByte)-1
for leftP < rightP { for leftP < rightP {
rightShift := 1 rightShift := 1
// 如果是数字则加入number // 如果是数字则加入number
if (strByte[leftP] <= '9') && (strByte[leftP] >= '0') { if (strByte[leftP] <= '9') && (strByte[leftP] >= '0') {
for i, tmpByte := range tmpBytes { for i, tmpByte := range tmpBytes {
strByte[rightP-len(tmpBytes)+i+1] = tmpByte strByte[rightP-len(tmpBytes)+i+1] = tmpByte
} }
rightShift = len(tmpBytes) rightShift = len(tmpBytes)
} else { } else {
strByte[rightP] = strByte[leftP] strByte[rightP] = strByte[leftP]
} }
// 更新指针 // 更新指针
rightP -= rightShift rightP -= rightShift
leftP -= 1 leftP -= 1
} }
return string(strByte) return string(strByte)
} }
func main(){ func main(){
var strByte []byte var strByte []byte
fmt.Scanln(&strByte) fmt.Scanln(&strByte)
newString := replaceNumber(strByte) newString := replaceNumber(strByte)
fmt.Println(newString) fmt.Println(newString)
} }
```` ````