栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【华为机试之C++】字符串排序

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【华为机试之C++】字符串排序

描述

给定 n 个字符串,请对 n 个字符串按照字典序排列。

数据范围: 1 le n le 1000 1≤n≤1000 ,字符串长度满足 1 le len le 100 1≤len≤100

输入描述:

输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。

输出描述:

数据输出n行,输出结果为按照字典序排列的字符串。

示例1
输入:
9
cap
to
cat
card
two
too
up
boat
boot

输出:
boat
boot
cap
card
cat
to
too
two
up
思路

1.利用std::sort升序对字符串升序排列得到的就是字典序的字符串。

代码

StringSorter.h

#pragma once
#include 

class StringSorter
{
public:
	static StringSorter* getInstance();

public:
	void sort();

private:
	StringSorter() = default;
	~StringSorter() = default;

private:
	static StringSorter* instance;
	static std::mutex iMutex;
};

StringSorter.cpp

#include "StringSorter.h"
#include 
#include 
#include 
#include 

StringSorter* StringSorter::instance = nullptr;
std::mutex StringSorter::iMutex;

StringSorter* StringSorter::getInstance()
{
    std::unique_lock lock(iMutex);
    if (nullptr == instance) {
        instance = new StringSorter();
    }

    return instance;
}

void StringSorter::sort()
{
    
    uint32_t stringCount = 0;
    std::cin >> stringCount;

    if (1 > stringCount || 1000 < stringCount) {
        std::cout << "Invalid input" << std::endl;
        return;
    }
    std::vector strings;
    while (stringCount) {
        std::string singleString;
        std::cin >> singleString;

        if (singleString.length() < 1 || singleString.length() > 100) {
            std::cout << "Invalid input" << std::endl;
            continue;
        }
        stringCount--;

        strings.push_back(singleString);
    }

    std::sort(strings.begin(), strings.end(), std::less());

    for (auto& ele:strings) {
        std::cout << ele << std::endl;
    }
}

main.cpp

#include "StringSorter.h"

int main(int argc, char** argv)
{
	auto reverser = StringSorter::getInstance();

	reverser->sort();

	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/949897.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号