美文网首页
study_go_day6map例题

study_go_day6map例题

作者: 无风起个浪 | 来源:发表于2019-03-11 17:19 被阅读0次

package main

import (

"fmt"

"unicode/utf8"

)

//例子:寻找最长不含有重复字符串的字串 abcabcbb->abc bbbbb->b pwwkew->wke

func lengthOfLongestSubstring(s string) int {

lastOcurred := make(map[byte]int)

start :=0

  maxLength :=0

  for i,ch :=range []byte(s)  {

if  lastI,ok := lastOcurred[ch];ok && lastI >= start {

start = lastI +1

      }

if i - start +1 > maxLength {

maxLength = i - start +1

      }

lastOcurred[ch] = i

}

return maxLength

}

//支持中文,并获得最长字符串

func internationaLengthOfLongestSubstring(s string) (int,string) {

lastOcurred := make(map[rune]int)

start :=0

  maxLength :=0

  strmax :=""

  for i,ch :=range []rune(s)  {

if  lastI,ok := lastOcurred[ch];ok && lastI >= start {

start = lastI +1

      }

if i - start +1 > maxLength {

maxLength = i - start +1

        strmax = strmax + string(ch)

}

lastOcurred[ch] = i

}

return maxLength,strmax

}

//rune相当于go的char

func studyRune()  {

s :="我爱北京天安门,天安门上太阳升"

  fmt.Println(len(s))

fmt.Printf("%X\n",[]byte(s))

//utf-8用的是可变长度,比较耗费空间,英文一字节,中文三字节

  for _,b :=range []byte(s) {

fmt.Printf("%X ",b)

}

fmt.Println()

for i,ch :=range s  {//ch 就是一个rune,rune是int32的别名

      fmt.Printf("(%d,%X)",i,ch)

}

fmt.Println()

fmt.Println("rune count:",utf8.RuneCountInString(s))

b := []byte(s)

for len(b) >0{

ch,size := utf8.DecodeRune(b)

b = b[size:]

fmt.Printf("%c ",ch)

}

fmt.Println()

for i,ch :=range []rune(s)  {//ch 是四个字节

      fmt.Printf("%d--%c\n",i,ch)

}

/*

*使用range 遍历pos,rune对

*使用utf8.RuneCountString获得字符串数量

*使用len获得字节长度

*使用[]byte获得字节

*/

//国际

  fmt.Println(internationaLengthOfLongestSubstring(s))

fmt.Println(internationaLengthOfLongestSubstring("dfdfadsreter"))

fmt.Println(internationaLengthOfLongestSubstring("f847电话电话dhhfhac"))

}

func main() {

fmt.Printf("%d", lengthOfLongestSubstring("djfhdhf"))

fmt.Println("\n学习rune")

studyRune()

}

相关文章

  • study_go_day6map例题

    package main import ( "fmt" "unicode/utf8" ) //例子:寻找最长不含有...

  • 简单机械杠杆作图

    例题 例题 答案 例题 答案 例题 答案 例题 答案 例题 例题 答案 例题 答案 例题 答案 例题 答案 例题 ...

  • 中考物理估测题总结

    例题 答案: 例题 答案 例题 答案 例题 答案 例题 答案 例题 答案 例题 答案 例题 答案 例题 答案 例题...

  • 三年中考作图光学作图汇总

    例题: 答案: 例题: 答案: 例题: 答案: 例题: 答案: 例题: 答案: 例题: 答案: 例题: 答案: 例...

  • 三年中考作图光学作图汇总

    例题: 答案: 例题: 答案: 例题: 答案: 例题: 答案: 例题: 答案: 例题: 答案: 例题: 答案: 例...

  • 5-17分数的简单分拆

    裂差公式 例题一 ☆☆: 例题二 ☆☆☆: 例题三☆☆☆: 例题四☆☆☆: 例题五 ☆☆☆: 例题六 ☆☆☆: 例...

  • 矩阵的初等变换与线性方程组

    1. 矩阵的初等变换 例题例题例题 2. 矩阵的秩 例题 3. 线性方程组的解 例题例题例题

  • 微分算子法

    基本性质: 例题1: 例题2: 例题3: 例题4: 一、n阶微分方程 2、计算

  • 例题

    【例1】因为大圆的半径和小圆的直径相等,所以大圆面积是小圆面积的() A、2倍 B、4倍 C、 ...

  • 例题

    子查询多行的时候用in 22

网友评论

      本文标题:study_go_day6map例题

      本文链接:https://www.haomeiwen.com/subject/jbwbpqtx.html