博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer 有序二维数组的元素查找 字符串的空格的替换 go 语言实现
阅读量:4035 次
发布时间:2019-05-24

本文共 1742 字,大约阅读时间需要 5 分钟。

package main

import (

“fmt”
“strings”
)

// 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,

// 每一列都按照从上到下递增的顺序排序。
// 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
func Find(target int, array [3][3]int) bool {

// 二维数组循环 暴力解决法for i := 0; i < 3; i++ {	for j := 0; j < 3; j++ {		if target == array[i][j] {			return true		}	}}return false

}

func Find2(target int, array [3][3]int) bool {
//右上或者左下
// 右上的的呢个元素为改行的最大值该列的最小值 如果要查询的元素的比这个元素小则从该行进行查找
// 如果元素比这个元素大 就从下一行最后一列进行寻找
// 同理左下也是也个意思 时间复杂度会比暴力法低一些
// for i := 0; i < 3; i++ {
// if target == array[i][2] {
// return true
// } else if target < array[i][2] {
// for j := 0; j < 3; j++ {
// if target == array[0][j] {
// return true
// }
// }
// } else {
// for j := 0; j < 3; j++ {
// if target == array[0][j] {
// return true
// }
// }
// }
// }
// return false

// 简洁写法i := 0 //行j := 2 // 列if (i < 3) && (j >= 0) {	if array[i][j] < target {		i++	} else if array[i][j] > target {		j--	} else {		return true	}}return false

}

// 2.请实现一个函数,将一个字符串中的每个空格替换成“%20”。

// 例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy
// 思路:
// go语言中有一个操作字符串的函数strings.Fields(s string ) []string
// 该函数的作用是按照空格切割
// strings.Fields(s string) []string
// 返回使用空格分割的字符串 s,结果为切片。
// strings.Fields(“Han Zhong Kang”) 利用该函数 切割
// 返回 []string, [“Han”, “Zhong”, “Kang”]

// strings.Join(a []string, sep string) string

// 使用分隔符 sep 连接字符串切片 a。
// ss := []string{“Go”, “Hank”, “Python”, “PHP”}
// strings.Join(ss, “-”)
// 返回 “Go-Hank-Python-PHP” 使用该函数进行拼接
func replaceSpace(s string) string {
s1 := strings.Fields(s)
s2 := strings.Join(s1, “%20”)

return s2

}

func main() {
// a := [3][3]int{
{1, 2, 3}, {2, 4, 6}, {3, 6, 9}}

// b := 3// c := 9// fmt.Println(Find2(b, a))// fmt.Println(Find2(c, a))a := "We are Happy"fmt.Println(replaceSpace(a))

}

转载地址:http://ugydi.baihongyu.com/

你可能感兴趣的文章
Java的对象驻留
查看>>
logback高级特性使用(二) 自定义Pattern模板
查看>>
JVM并发机制探讨—内存模型、内存可见性和指令重排序
查看>>
可扩展、高可用服务网络设计方案
查看>>
如何构建高扩展性网站
查看>>
微服务架构的设计模式
查看>>
持续可用与CAP理论 – 一个系统开发者的观点
查看>>
nginx+tomcat+memcached (msm)实现 session同步复制
查看>>
c++字符数组和字符指针区别以及str***函数
查看>>
c++类的操作符重载注意事项
查看>>
c++模板与泛型编程
查看>>
STL::deque以及由其实现的queue和stack
查看>>
WAV文件解析
查看>>
DAC输出音乐2-解决pu pu 声
查看>>
WPF中PATH使用AI导出SVG的方法
查看>>
WPF UI&控件免费开源库
查看>>
QT打开项目提示no valid settings file could be found
查看>>
Win10+VS+ESP32环境搭建
查看>>
Ubuntu+win10远程桌面
查看>>
flutter-实现圆角带边框的view(android无效)
查看>>