Go字符串练习

1.从键盘获取一个字符串,判断这个字符串是否为回文

方法一:

package main

import (
    "bufio"
    "fmt"
    "os"
    "strings"
)

func main() {
    //1.从键盘获取一个字符串,判断这个字符串是否为回文

    //方法一:
    reader := bufio.NewReader(os.Stdin)
    fmt.Println("开始从键盘输入")
    line, _ := reader.ReadString('\n')
    line = strings.TrimSpace(line)
    flag := true
    j := len(line)
    for i := 0; i < len(line); i++ {
     if line[i] == line[j-i-1] {
         continue
     } else {
         flag = false
     }
    }
    if flag {
     fmt.Println("是回文")
    } else {
     fmt.Println("不是回文")
    }
}

方法二:

package main

import (
    "bufio"
    "fmt"
    "os"
    "strings"
)

func main() {
    //方法二:
    reader := bufio.NewReader(os.Stdin)
    fmt.Println("开始从键盘输入")
    line, _ := reader.ReadString('\n')
    line = strings.TrimSpace(line)
    line2 := ""
    for i := 0; i < len(line); i++ {
     line2 = string(line[i]) + line2
    }
    if line == line2 {
     fmt.Println("是回文")
    } else {
     fmt.Println("不是回文")
    }
}
2.字符串压缩 “aaabbccaadd” --》a3b2c2a2d2
package main

import (
    "bufio"
    "fmt"
    "os"
    "strings"
)

func main() {
    //2.字符串压缩 “aaabbccaadd” --》a3b2c2a2d2
    reader := bufio.NewReader(os.Stdin)
    fmt.Println("开始从键盘输入")
    line, _ := reader.ReadString('\n')
    line = strings.TrimSpace(line)
    line2 := ""
    count := 1
    for i := 1; i < len(line); i++ {

        if line[i] == line[i-1] {
            count++
        } else {
            line2 = line2 + string(line[i-1]) + string(count+'0')

            count = 1 //重置计数器
        }

    }
    // 处理最后一个字符的压缩结果
    line2 += string(line[len(line)-1]) + fmt.Sprintf("%d", count)

    fmt.Println("压缩后的字符串是:", line2) //输出压缩后的字符串
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值