• 重排字符串数组



    /*

    给定一系列长度相等的字符串,请对字符串进行重排,使得相邻的2个字符串之间仅有一个字符差异,请输出重排后的结果:
    如果有多个解,则输出字典序的最小的解。
    如果无解,则输出字符串Impossible
    注:仅对字符串进行重排,每个字符串本身不能改动

    输入:
    第一行为整数n,表示输入字符串的行数,范围【2,20】
    接下来n行字符串,字符串均为小写字符组成,且长度相同,每个字符串长度范围为【1,15】
    输出:
    按行输出重排后的字符串,或字符串Impossible
    样例1
    输入:3
    gbd
    abc
    abd
    输出:abc
    abd
    gdb
    解释
    重排后的字符串:
    abc 与后一个字符串相差一个字符c
    abd 与前一个字符串相差一个字符d,与后一个字符相差一个字符a
    gdb 与前一个字符串相差一个字符g

    ["abc","abd", "gbd"], ["gdb", "abd", "abc"] 都是可行解,字典序最小为【"abc", "abd","gbd"】

    样例2
    输入 3
    abd
    abc
    abd
    输出
    abd
    abc
    abd
    样例3
    输入 3
    abde
    cccc
    abde
    输出Impossible


    * Copyright (c) Huawei Technologies Co., Ltd. 2020-2020. All rights reserved.
    * Description: 考生实现代码
    * Note: 缺省代码仅供参考,可自行决定使用、修改或删除
    * 只能import Go标准库
    */
    package main

    import (
    "bufio"
    "fmt"
    "io"
    "os"
    "strings"
    )

    // 待实现函数,在此函数中填入答题代码
    func rearrangeArray(stringInfo []string) []string {
    return nil
    }

    func main() {
    reader := bufio.NewReader(os.Stdin)
    var line int
    if _, err := fmt.Fscanf(reader, "%d\n", &line); err != nil {
    return
    }
    stringInfo, err := readInputStrArrayFromNlines(reader, line)
    if err != nil {
    return
    }

    result := rearrangeArray(stringInfo)
    if len(result) == 0 {
    fmt.Println("Impossible")
    } else {
    for _, value := range result {
    fmt.Println(value)
    }
    }

    }

    func readInputStrArrayFromNlines(reader *bufio.Reader, num int) ([]string, error) {
    if num <= 0 {
    return []string{}, nil
    }
    result := make([]string, 0, num)
    for i := 0; i < num; i++ {
    lineBuf, err := reader.ReadString('\n')
    if err != nil && err != io.EOF {
    return nil, err
    }
    lineBuf = strings.TrimRight(lineBuf, "\r\n")
    lineBuf = strings.TrimSpace(lineBuf)

    result = append(result, lineBuf)
    }
    return result, nil
    }

  • 相关阅读:
    Angular InjectionToken
    ionic 使用入门
    EFcore 横向分表
    .Netcore 默认认证授权
    anut 设计资源
    Aunt entity
    百度人脸真人认证
    Angular 省市区级联
    apache安装
    ppb|ppm
  • 原文地址:https://www.cnblogs.com/gongxianjin/p/16755937.html
Copyright © 2020-2023  润新知