一、leetcode的算法题

  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "strings"
  6. )
  7.  
  8. func lengthOfNonRepeatingSubStr(s string)int{
  9. lastOccurred :=make(map[rune]int)
  10. start:=0
  11. maxLength:=0
  12. //将字符串转成 ASCII 码的切片,循环获取下标与值
  13. for i,ch:=range []rune(s){
  14. if lastI,ok:=lastOccurred[ch];ok && lastI>=start{
  15. start=lastOccurred[ch]+1
  16. }
  17. if i-start+1>maxLength {
  18. maxLength=i-start+1
  19. }
  20. lastOccurred[ch]=i
  21. }
  22. return maxLength
  23. }
  24. func main() {
  25. fmt.Println(
  26. lengthOfNonRepeatingSubStr("abcabcbb"),
  27. lengthOfNonRepeatingSubStr("bbbbb"),
  28. lengthOfNonRepeatingSubStr("阿斯顿法国规划开发阿斯顿发放"))
  29.  
  30. fmt.Println([]byte("asfsawersd"))
  31.  
  32. str1:="sdfsad asdfsadf sad;fasfd"
  33. s:=strings.Fields(str1)
  34. for index,value:=range s {
  35. fmt.Println(index,value)
  36. }
  37. }

二、普通测试代码

  1. package main
  2.  
  3. import "testing"
  4.  
  5. func TestSubstr(t *testing.T) {
  6. tests:=[]struct{
  7. s string
  8. ans int
  9. }{
  10. {"abssafds",4},
  11. {"pwwkew",3},
  12. {"",0},
  13. {"b",1},
  14. {"bbbbbbbb",1},
  15. {"asadfasdf",4},
  16. }
  17.  
  18. for _,tt:=range tests {
  19. actual:=lengthOfNonRepeatingSubStr(tt.s)
  20. if actual !=tt.ans{
  21. t.Errorf("got %d for input %s:"+"expected %d",actual,tt.s,tt.ans)
  22. }
  23. }
  24. }
  25.  
  26. #测试通过
  27. #=== RUN TestSubstr
  28. #--- PASS: TestSubstr (0.00s)
  29. #PASS
  30.  
  31. #测试错误
  32. #修改错误的数据{"pwwkew",2},
  33. #=== RUN TestSubstr
  34. #--- FAIL: TestSubstr (0.00s)
  35. # leetcode_test.go:21: got 3 for input pwwkew:expected 2
  36. #FAIL

三、性能测试代码

  1. func BenchmarkSubstr(b *testing.B){
  2. s:="黑化肥挥发发灰会花飞灰化肥挥发发黑会飞花"
  3. ans:=8
  4.  
  5. for i:=0;i<b.N;i++{
  6. actual:=lengthOfNonRepeatingSubStr(s)
  7. if actual !=ans {
  8. b.Errorf("got %d for input %s; "+"expected %d",actual,s,ans)
  9. }
  10. }
  11. }
  12.  
  13. #执行结果
  14. #goos: windows
  15. #goarch: amd64
  16. #pkg: awesomeProject/leetcode
  17. #运行了100万次,每次运行用了1362ns
  18. #BenchmarkSubstr-8 1000000 1361 ns/op
  19. #PASS

golang的表格驱动测试的更多相关文章

  1. Selenium(十四):自动化测试模型介绍、模块化驱动测试案例、数据驱动测试案例

    1. 自动化测试模型介绍 随着自动化测试技术的发展,演化为了集中模型:线性测试.模块化驱动测试.数据驱动测试和关键字驱动测试. 下面分别介绍这几种自动化测试模型的特点. 1.1 线性测试 通过录制或编 ...

  2. TODO:Golang UDP连接简单测试慎用Deadline

    TODO:Golang UDP连接简单测试慎用Deadline UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interco ...

  3. Win8驱动测试模式

    打开驱动测试模式(保存成bat文件,双击执行) bcdedit /set testsigning on pause 执行完成后,看见提示操作成功的提示,之后我们重启一下,再次进入系统,在桌面的右下角会 ...

  4. selenium+python(模块化驱动测试)

    模块化驱动测试,就是借鉴编程语言中模块化的思想,把重复的操作独立成功公告模块,懂用例执行过程中需要用到这一模块操作时则被调用,这样可以极大的消除重复从而提高测试用例的可维护性 下面具体以126邮箱为例 ...

  5. linux驱动开发之九鼎板载蜂鸣器驱动测试【转】

    本文转载自:http://whylinux.blog.51cto.com/10900429/1932491 字符设备驱动用的fileopretion结构体. 1.板载蜂鸣器的驱动测试 我手里有一个BS ...

  6. DevOps on DevCloud|如何实现应用接口的混合驱动测试

    引言:在"DevOps能力之屋(Capabilities House of DevOps)"中,华为云DevCloud提出(工程方法+最佳实践+生态)×工具平台=DevOps能力. ...

  7. 流程及迭代驱动测试管理软件, itest 发布到开源中国

    itest 源码已发布到码云 ,项目已被开源中国收录!详见  https://www.oschina.net/p/itest-cn 测试人自己开发,汇聚10年沉淀,独创流程驱动测试.度量展现测试人价值 ...

  8. web自动化测试-模块驱动测试实例和数据驱动测试实例

    一.模块驱动测试实例 把登录和退出统一封装在login类中,若把login类单独放在一个文件中,就可以给任一测试脚本调用,这里就跟测试脚本放一起 from selenium import webdri ...

  9. 多层If语句 和 表格驱动 的对比

    网文提到表格驱动,总喜欢拿一层if做例子,然而这样未免也太简单. 下文是三层缩进的if和表驱动比较,大家可自行判断优劣. 业务是这样的,某景点分旺季票价和淡季票价,淡季票为旺季的一半,15岁以下孩子再 ...

随机推荐

  1. C/S通信

    一直在考虑写一个服务端和客户端通信的框架,就现在的需求,打算走http协议. 通信方式打算用Key/Value的形式. 这里面其实还是有很多的问题的,这样的一个通信框架其实是SOA的一部分.其他 但是 ...

  2. Substring UVA - 11468 AC自动机+概率DP

    题意: 给出一些字符和各自对应的选择概率,随机选择L次后得到一个长度为L的随机字符串S. 给出K个模板串,计算S不包含任何一个模板串的概率 dp[i][j]表示走到AC自动机 i 这个节点 还需要走 ...

  3. 9.ActiveMQ理论

    一.首先说下什么是消息队列? 1.消息队列是在消息的传输过程中保存消息的容器. 二.为什么要用到消息队列? 主要原因是由于在高并发环境下,由于来不及同步处理,请求往往会发生堵塞,比如说,大量的inse ...

  4. lds 文件说明

    主要符号说明 OUTPUT_FORMAT(bfdname) 指定输出可执行文件格式. OUTPUT_ARCH(bfdname) 指定输出可执行文件所运行 CPU 平台 ENTRY(symbol) 指定 ...

  5. C 常见字符串操作函数

    头文件 <string.h> 1. char *strstr(const char *str1, const char *str2);      判断str2是否为str1的子串  //s ...

  6. 找到你的位置(JS在页面中的位置)最常用的方式是在页面中head部分放置<script>元素,浏览器解析head部分就会执行这个代码,然后才解析页面的其余部分

    找到你的位置(JS在页面中的位置) 我们可以将JavaScript代码放在html文件中任何位置,但是我们一般放在网页的head或者body部分. 放在<head>部分 最常用的方式是在页 ...

  7. stelller插件与background-attachment配合使用,制作滚动页面

    stelller插件与background-attachment:fixed配合使用,制作滚动页面

  8. 关于 argc 和 argv

    https://stackoverflow.com/questions/3898021/regarding-mainint-argc-char-argv 当使用命令行启动程序,或者给程序传输参数时,可 ...

  9. js面试总结3

    异步和单线程 题目: 1.同步和异步的区别? 2.一个关于setTimeout的笔试题. 3.前段使用异步的场景有哪些? 什么是异步? console.log(100) setTimeout(func ...

  10. BZOJ 1398: Vijos1382寻找主人 Necklace(最小表示法)

    传送门 解题思路 最小表示法.首先对于判断是不是循环同构的串,直接扫一遍用哈希判即可.然后要输出字典序最小的就要用到最小表示法,首先可以把串复制一遍,这样的话就可以把串变成静态操作.如果对于两个位置\ ...