【Go语言入门100题】023 输出GPLT (20 分) Go语言 | Golang

简介: L1-023 输出GPLT (20 分) Go语言|Golang给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT....这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。下面给出甲、乙两人的酒量(最多能喝多少杯不倒)和划拳记录,请你判断两个人谁先倒。

L1-023 输出GPLT (20 分) Go语言|Golang

给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT....这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。


下面给出甲、乙两人的酒量(最多能喝多少杯不倒)和划拳记录,请你判断两个人谁先倒。


输入格式:

输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。


输出格式:

在一行中按题目要求输出排序后的字符串。题目保证输出非空。


输入样例1:

pcTclnGloRgLrtLhgljkLhGFauPewSKgt

结尾无空行

输出样例1:

GPLTGPLTGLTGLGLL
• 1

结尾无空行

思路:

这题我的方法比较暴力,如果先用map进行存储,key是字符,value是数字,然后就一直输出,如果有值,即不等于零的时候就输出,直到全部都没了就退出。

代码如下:

package main
import "fmt"
func main() {
  var str string
  stdMap := make(map[rune]int)
  _,_=fmt.Scan(&str)//GPLT
  for _,item := range str { //map进行存储,`key`是字符,`value`是数字
    if item == 'G' ||item == 'g' {
      stdMap['G']+=1
    }else if  item == 'P'||  item == 'p'{
      stdMap['P']+=1
    }else if item == 'L'||  item == 'l'{
      stdMap['L']+=1
    }else if item == 'T'||  item == 't'{
      stdMap['T']+=1
    }
  }
  s := ""
  for {
    if stdMap['G'] > 0 {  // 如果这个大于零
      s+="G"   // 就让他输出 
      stdMap['G']-- // 然后让这个自减
    }
    if stdMap['P'] > 0 {
      s+="P"
      stdMap['P']--
    }
    if stdMap['L'] > 0 {
      s+="L"
      stdMap['L']--
    }
    if stdMap['T'] > 0 {
      s+="T"
      stdMap['T']--
    }
    if stdMap['G']==0 && stdMap['P']==0  && stdMap['L']==0 && stdMap['T']==0 {
      break  // 如果全都没有的话,就直接退出了。
    }
  }
  fmt.Printf("%s",s)
}
相关文章
|
4月前
|
Cloud Native 安全 Java
Go语言深度解析:从入门到精通的完整指南
🌟蒋星熠Jaxonic,Go语言探索者。深耕云计算、微服务与并发编程,以代码为笔,在二进制星河中书写极客诗篇。分享Go核心原理、性能优化与实战架构,助力开发者掌握云原生时代利器。#Go语言 #并发编程 #性能优化
508 43
Go语言深度解析:从入门到精通的完整指南
|
4月前
|
Java 编译器 Go
【Golang】(1)Go的运行流程步骤与包的概念
初次上手Go语言!先来了解它的运行流程吧! 在Go中对包的概念又有怎样不同的见解呢?
254 4
|
4月前
|
Java 编译器 Go
【Golang】(5)Go基础的进阶知识!带你认识迭代器与类型以及声明并使用接口与泛型!
好烦好烦好烦!你是否还在为弄不懂Go中的泛型和接口而烦恼?是否还在苦恼思考迭代器的运行方式和意义?本篇文章将带你了解Go的接口与泛型,还有迭代器的使用,附送类型断言的解释
244 3
|
4月前
|
存储 安全 Java
【Golang】(4)Go里面的指针如何?函数与方法怎么不一样?带你了解Go不同于其他高级语言的语法
结构体可以存储一组不同类型的数据,是一种符合类型。Go抛弃了类与继承,同时也抛弃了构造方法,刻意弱化了面向对象的功能,Go并非是一个传统OOP的语言,但是Go依旧有着OOP的影子,通过结构体和方法也可以模拟出一个类。
277 1
|
5月前
|
Cloud Native 安全 Java
Go语言深度解析:从入门到精通的完整指南
🌟 蒋星熠Jaxonic,执着的星际旅人,用Go语言编写代码诗篇。🚀 Go语言以简洁、高效、并发为核心,助力云计算与微服务革新。📚 本文详解Go语法、并发模型、性能优化与实战案例,助你掌握现代编程精髓。🌌 从goroutine到channel,从内存优化到高并发架构,全面解析Go的强大力量。🔧 实战构建高性能Web服务,展现Go在云原生时代的无限可能。✨ 附技术对比、最佳实践与生态全景,带你踏上Go语言的星辰征途。#Go语言 #并发编程 #云原生 #性能优化
|
6月前
|
Cloud Native Go API
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
466 0
|
6月前
|
Cloud Native Java Go
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
313 0
|
6月前
|
Cloud Native Java 中间件
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
339 0
|
存储 JSON API
Go语言:RESTful API 服务,急速入门!
REST即表述性状态传递(英文:Representational State Transfer,简称REST),它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性
676 0
Go语言:RESTful API 服务,急速入门!
|
安全 编译器 Go
Go语言,Protobuf 入门详解!
Protobuf 是 Protocol Buffers 的简称,是一种与语言、平台无关,可扩展的序列化结构化数据的数据描述语言,Protobuf作为接口规范的描述语言,可以作为设计安全的跨语言PRC接口的基础工具。
557 0
Go语言,Protobuf 入门详解!

热门文章

最新文章

推荐镜像

更多