快速排序
func QuickSort(sort []int) []int {
if len(sort) <= 1 {
return sort
}
low := make([]int, 0, 0)
mid := make([]int, 0, 0)
high := make([]int, 0, 0)
tag := sort[0]
mid = append(mid, tag)
for i := 1; i < len(sort); i++ {
if sort[i] < tag {
low = append(low, sort[i])
} else if sort[i] > tag {
high = append(high, sort[i])
} else {
mid = append(mid, sort[i])
}
}
low, high = QuickSort(low), QuickSort(high)
return append(append(low, mid...), high...)
}
反转字符串包含数字中英文
func ReveverString(strs string) string {
s := []rune(strs)
for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 {
s[i], s[j] = s[j], s[i]
}
return string(s)
}
反转链表
type ListNode struct {
Val int
Next *ListNode
}
func ReverseList(head *ListNode) *ListNode {
cur := head
var pre *ListNode = nil
for cur != nil {
pre, cur, cur.Next = cur, cur.Next, pre
}
return pre
}
无重复最长字符串长度
func LengthOfLongSubString(s string) int {
start := 0
end := 0
for i := 0; i < len(s); i++ {
index := strings.Index(s[start:i], string(s[i]))
if index == -1 && (i+1)>end {
end = i+1
}else {
start += index+1
end += index+1
}
}
return end-start
}