golang 使用Go查找给定切片中的最大字符串数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 使用Go查找给定切片中的最大字符串数相关的知识,希望对你有一定的参考价值。

package main

import (
	"fmt"
)

func MaxString(s []string) string {
	max := s[0]
	for _, v := range s[1:] {
		if v > max {
			max = v
		}
	}
	return max
}

func MaxStringRec(s []string) string {
	if len(s) == 0 {
		return ""
	}
	if len(s) == 1 {
		return s[0]
	}
	if s[0] > s[1] {
		return MaxStringRec(append(s[:1], s[2:]...))
	} else {
		return MaxStringRec(s[1:])
	}
}

func main() {
	fmt.Printf("%v\n", Max([]string{"alpha", "Delta", "delta", "zuluzulu", "beta"}))
	fmt.Printf("%v\n", Max2([]string{"alpha", "Delta", "delta", "zuluzulu", "beta"}))
}

go切片遍历

参考技术A 对于切片的顺序遍历,一般使用 range 就可以了。

这里有一个问题需要注意一下,如果这里的切片nums不是基本数据类型而是结构体。range遍历出来的value值是拷贝值而并非原结构体,修改value中的值不会改变原切片中的值。如果要遍历修改,可以将切片的结构体改为指针,或都索引来取值。

一般情况下逆序遍历思路就是for size-1到0.

二般的也可以使用range来遍历

以上是关于golang 使用Go查找给定切片中的最大字符串数的主要内容,如果未能解决你的问题,请参考以下文章

Go-二分查找算法

go切片遍历

Golang理解-数组和切片

Golang 基础:Go Module, for range, 切片, map, struct 等使用和实现

Golang 基础:Go Module, for range, 切片, map, struct 等使用和实现

Golang 入门总结:Go Module, for range, 切片, map, struct 等使用和实现