iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > GO >按给定切片对切片字符串进行排序/排序
  • 929
分享到

按给定切片对切片字符串进行排序/排序

2024-04-04 23:04:51 929人浏览 安东尼
摘要

哈喽!大家好,很高兴又见面了,我是编程网的一名作者,今天由我给大家带来一篇《按给定切片对切片字符串进行排序/排序》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发!

哈喽!大家好,很高兴又见面了,我是编程网的一名作者,今天由我给大家带来一篇《按给定切片对切片字符串进行排序/排序》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!

问题内容

如何按照另一字符串片段给出的顺序对字符串片段进行排序。如果输入切片中不存在该字符串,则忽略它。

animalsInput := []string{"cat", "bird", "zebra", "fox"}
animalsOrder := []string{"bird", "lion", "fox"}

//desired output
//{"bird", "fox", "cat", "zebra"}


解决方案


实现此目的的一种方法是根据顺序数组编写 rank 映射

rank:=map[string]int{}
for i, x:=range animalsorder {
   rank[x]=i
}

然后在sort中使用rank

sort.slice(animalsinput,func(i,j int) bool {
  irank, ok:=rank[animalsinput[i]]
  if !ok {
      irank=len(animalsinput)
  }
  jrank, ok:=rank[animalsinput[j]]
  if !ok {
      jrank=len(animalsinput)
  }
  return irank<jrank
})

您可以尝试以下代码:

package main

import (
    "fmt"
)

func sort(in, order []string) (out []string) {
    flag := make([]bool, len(in))
    out = make([]string, len(in))
    orderCountMap := make(map[string]int)
    for i := range in {
        orderCountMap[in[i]] += 1
    }
    for i := range in {
        if _, found := orderCountMap[in[i]]; found {
            flag[i] = true
        } else {
            flag[i] = false
        }
    }
    p := 0
    for i := range order {
        if v, found := orderCountMap[order[i]]; found {
            for j := 0; j < v; j++ {
                out[p] = order[i]
                p += 1
            }
        }
    }
    for i := range flag {
        if !flag[i] {
            out[p] = in[i]
            p += 1
        }
    }
    return
}

func main(){
    animalsInput := []string{"cat", "bird", "zebra", "fox"}
    animalsOrder := []string{"bird", "lion", "fox", "zebra", "cat"}
    out := sort(animalsInput, animalsOrder)
    fmt.Println(out)
}

本篇关于《按给定切片对切片字符串进行排序/排序》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于golang的相关知识,请关注编程网公众号!

您可能感兴趣的文档:

--结束END--

本文标题: 按给定切片对切片字符串进行排序/排序

本文链接: https://www.lsjlt.com/news/596282.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 按给定切片对切片字符串进行排序/排序
    哈喽!大家好,很高兴又见面了,我是编程网的一名作者,今天由我给大家带来一篇《按给定切片对切片字符串进行排序/排序》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发!...
    99+
    2024-04-04
  • 对切片进行排序:利用排序方法实现切片排序
    目前编程网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《对切片进行排序:利用排序方法实现切片排序》,也希望能帮助到大家,如果阅读完后真的对你学习G...
    99+
    2024-04-04
  • 对多维切片进行排序
    Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《对多维切片进行排序》带大家来了解一下##content_title##,希望对大家的知...
    99+
    2024-04-04
  • java怎么给对象按照字符串属性进行排序
    这篇文章主要介绍“java怎么给对象按照字符串属性进行排序”,在日常操作中,相信很多人在java怎么给对象按照字符串属性进行排序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java怎么给对象按照字符串属性进...
    99+
    2023-07-04
  • golang切片怎么排序
    Go语言中,切片(slice)是一个引用类型。切片可以看做是固定大小的数组的引用。在Go语言中,切片长度是可以改变的。而排序是编程中常用的操作之一,本文将介绍如何使用Go语言对切片进行排序。一、sort包的使用Go语言中提供了sort包,包...
    99+
    2023-05-14
  • 在 mYsql 中按字符长度对字符串进行排序?
    您可以借助 MySQL 的 CHAR_LENGTH() 函数按字符长度排序。该函数返回字符数,即以下字符串的 4 个 -AMIT要按字符长度对字符串进行排序,语法如下 -select *from yourTableName ord...
    99+
    2023-10-22
  • Mysql怎么对字符串进行排序
    Mysql对字符串进行排序的方法示例:利用ORDER BY关键字进行排序。语法:SELECT column_name,column_nameFROM table_nameORDER BY column_name,column_nam...
    99+
    2024-04-02
  • 如何使用golang中的sort.Slice函数对切片进行排序
    对切片进行排序是Golang中常用的一个功能,可以使用sort.Slice函数快速实现。这个函数允许通过传入一个自定义的比较函数来对切片进行排序。sort.Slice函数的定义如下:func Slice(slice interface{},...
    99+
    2023-11-18
    Golang sortSlice 切片排序
  • 按分隔符展开切片字符串
    Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《按分隔符展开切片字符串》带大家来了解一下##content_title##,希望对大家...
    99+
    2024-04-04
  • python字符串切片怎么逆序输出
    要逆序输出一个字符串的切片,可以使用切片的步长参数。步长参数用来控制每次跳过几个字符。如果步长为负数,则会从后往前遍历字符串。下面是...
    99+
    2023-10-19
    python
  • 怎么在Shell中对字符串进行排序
    怎么在Shell中对字符串进行排序?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。【方法一】按ASCII正向排序备注:1) tr将子字符串中的空白转换为换行符,再...
    99+
    2023-06-09
  • 详解Go语言如何使用标准库sort对切片进行排序
    目录sort 标准库Ints 和 IntsAreSortedFloat64s 和 Float64sAreSortedStrings 和 StringsAreSortedSortInt...
    99+
    2022-12-21
    Go语言sort切片排序 Go语言 切片排序 Go语言sort
  • Python按键或值对字典进行排序
    给定一个字典,然后按键(key)或值(value)对字典进行排序。 def dictionairy(): # 声明字典 key_value ={} ...
    99+
    2024-04-02
  • 如何在Windows 10和11上按面部对照片进行排序
    Windows的操作随着每个版本而变得越来越好,具有诱人的功能来改善用户体验。用户希望在Windows 10和11上探索的一项功能是能够按面部对照片进行排序。此功能允许您通过面部识别对朋友和家人的照片进行分组。听起来很有趣,对吧?继续阅读如...
    99+
    2023-08-09
  • 按两列对 MySQL 表进行排序?
    借助以下语法按两列对 MySQL 表进行排序 -order by yourColumnName1 DESC,yourColumnName2 DESC;让我们首先为我们的示例创建一个表 -mysql> create table Orde...
    99+
    2023-10-22
  • java怎么对string字符串排序
    在Java中,你可以使用`Arrays`类的`sort`方法对字符串进行排序。以下是一个示例:```javaimport java....
    99+
    2023-09-14
    string java
  • oracle字符串按数字排序怎么实现
    要实现oracle字符串按数字排序,可以使用oracle的ORDER BY子句,并结合REGEXP_SUBSTR函数将字符串中的数字...
    99+
    2024-04-09
    oracle
  • MongoDB对指定键进行排序
    1.查看集合 show collections2.查看所有数据 db.runoob.find().pretty()3.通过view进行升序 db.runoob.find({'title':/...
    99+
    2024-04-02
  • python怎么对字典进行排序
    在Python中,可以使用`sorted()`函数对字典进行排序。字典本身是无序的,但可以将其转换为一个由键值对元组组成的列表,然后...
    99+
    2023-10-12
    python
  • PHP 中按自定义排序规则对数组进行排序,保留原始键名
    在 php 中,使用 uasort() 函数可按自定义排序规则对数组进行排序,同时保留原始键名。自定义比较函数是一个接受两个元素作为输入并返回整数的函数:负数表示前者小于后者,零表示相等...
    99+
    2024-05-04
    php 数组排序
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作