Golang-指定文本,求奇数行正数平方和

2024-09-05 12:08

本文主要是介绍Golang-指定文本,求奇数行正数平方和,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在stack看到HENNGE公司的招聘信息,于是去参加了一次线上笔试。对方法发了三道题,此为第一道题——使用Golang处理文本。

下为要求:

仔细思考后,发现一个规律:

  1. 第1行指定总行数;
  2. 偶数行n指定下一行奇数行n+1行的个数;
  3. 全部数据喂完后出结果,意味着最后是扔进数组,放到最后遍历。

提示:

  1. 要求不能使用for;
  2. 只能使用基本库。

因为Golang的循环语句出来了for,只剩下goto和递归。因为用goto会下地狱,因此我用递归。因为没学过Golang,只看了几个小时的语句介绍,可能写的比较菜,见谅。

package mainimport ("fmt""io/ioutil""regexp""strconv""strings"
)var output []intfunc main() {var err1 errorvar testfile0 []string// That's the test file name// this demo get data from the test.txtfile, err1 := ioutil.ReadFile("./test.txt")if err1 != nil {fmt.Println(err1)}testfile0 = strings.Split(string(file), "\r\n")total, _ := strconv.Atoi(testfile0[0])count := 0m := 0list(m, testfile0, count, total)// fmt.Println(output)outPrint(0, output)
}func squareSum(n int, arr []string) int {// fmt.Println("传进来的参数,代表个数:", n)// fmt.Println("此时指定奇数行的值:", arr[n-1])num, _ := strconv.Atoi(arr[n-1])if n == 1 {num1, _ := strconv.Atoi(arr[0])// fmt.Println("最后一个的平方:", num1*num1)return num1 * num1}if num >= 0 {// fmt.Println("平方:", num*num)return num*num + squareSum(n-1, arr)}return squareSum(n-1, arr)}func outPrint(i int, output []int) {if i+1 > len(output) {return}// fmt.Println("i", i)// fmt.Println("output[i]", output[i])fmt.Println(output[i])i++outPrint(i, output)return
}func list(m int, testfile0 []string, count int, total int) {if m+1 >= len(testfile0) {// fmt.Println(count)if count == total {fmt.Println("success, the first line number equal the test line ")return}fmt.Println("error, the first line number not equal the test line")return}if (m+1)%2 == 0 {var sum int = 0// fmt.Println("m:", m)// fmt.Println("testfile0[m+1]:", testfile0[m+1])pretext := regexp.MustCompile(`\s`)text := pretext.ReplaceAllString(testfile0[m+1], `,`)// fmt.Println("得到的数组:", text)// fmt.Println("上一行,指定的数字个数:", testfile0[m])var arr []string = strings.Split(text, ",")num, _ := strconv.Atoi(testfile0[m])sum = squareSum(num, arr)count++// fmt.Println("total:", sum)output = append(output, sum)// fmt.Println(output)// outPrint(0, output)// return output}m++list(m, testfile0, count, total)// fmt.Println(output)return
}

 

 

 

 

 

 

这篇关于Golang-指定文本,求奇数行正数平方和的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1138914

相关文章

golang 日志log与logrus示例详解

《golang日志log与logrus示例详解》log是Go语言标准库中一个简单的日志库,本文给大家介绍golang日志log与logrus示例详解,感兴趣的朋友一起看看吧... 目录一、Go 标准库 log 详解1. 功能特点2. 常用函数3. 示例代码4. 优势和局限二、第三方库 logrus 详解1.

使用Python实现获取网页指定内容

《使用Python实现获取网页指定内容》在当今互联网时代,网页数据抓取是一项非常重要的技能,本文将带你从零开始学习如何使用Python获取网页中的指定内容,希望对大家有所帮助... 目录引言1. 网页抓取的基本概念2. python中的网页抓取库3. 安装必要的库4. 发送HTTP请求并获取网页内容5. 解

使用Python实现文本转语音(TTS)并播放音频

《使用Python实现文本转语音(TTS)并播放音频》在开发涉及语音交互或需要语音提示的应用时,文本转语音(TTS)技术是一个非常实用的工具,下面我们来看看如何使用gTTS和playsound库将文本... 目录什么是 gTTS 和 playsound安装依赖库实现步骤 1. 导入库2. 定义文本和语言 3

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整

Python实现常用文本内容提取

《Python实现常用文本内容提取》在日常工作和学习中,我们经常需要从PDF、Word文档中提取文本,本文将介绍如何使用Python编写一个文本内容提取工具,有需要的小伙伴可以参考下... 目录一、引言二、文本内容提取的原理三、文本内容提取的设计四、文本内容提取的实现五、完整代码示例一、引言在日常工作和学

Python实现合并与拆分多个PDF文档中的指定页

《Python实现合并与拆分多个PDF文档中的指定页》这篇文章主要为大家详细介绍了如何使用Python实现将多个PDF文档中的指定页合并生成新的PDF以及拆分PDF,感兴趣的小伙伴可以参考一下... 安装所需要的库pip install PyPDF2 -i https://pypi.tuna.tsingh

Java实现将Markdown转换为纯文本

《Java实现将Markdown转换为纯文本》这篇文章主要为大家详细介绍了两种在Java中实现Markdown转纯文本的主流方法,文中的示例代码讲解详细,大家可以根据需求选择适合的方案... 目录方法一:使用正则表达式(轻量级方案)方法二:使用 Flexmark-Java 库(专业方案)1. 添加依赖(Ma

Golang中拼接字符串的6种方式性能对比

《Golang中拼接字符串的6种方式性能对比》golang的string类型是不可修改的,对于拼接字符串来说,本质上还是创建一个新的对象将数据放进去,主要有6种拼接方式,下面小编就来为大家详细讲讲吧... 目录拼接方式介绍性能对比测试代码测试结果源码分析golang的string类型是不可修改的,对于拼接字

Flask解决指定端口无法生效问题

《Flask解决指定端口无法生效问题》文章讲述了在使用PyCharm开发Flask应用时,启动地址与手动指定的IP端口不一致的问题,通过修改PyCharm的运行配置,将Flask项目的运行模式从Fla... 目录android问题重现解决方案问题重现手动指定的IP端口是app.run(host='0.0.

如何通过Golang的container/list实现LRU缓存算法

《如何通过Golang的container/list实现LRU缓存算法》文章介绍了Go语言中container/list包实现的双向链表,并探讨了如何使用链表实现LRU缓存,LRU缓存通过维护一个双向... 目录力扣:146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2.