描述
接受一个只包含小写字母的字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)
输入描述:
输入一行,为一个只包含小写字母的字符串。
输出描述:
输出该字符串反转后的字符串。
示例1
输入:abcd
输出:dcba
思路
1.字符串逆序操作:反向遍历输出一次即可。
代码
StringReverser.h
#pragma once
#include <mutex>
class StringReverser
{
public:
static StringReverser* getInstance();
public:
void reverse();
private:
StringReverser() = default;
~StringReverser() = default;
private:
static StringReverser* instance;
static std::mutex iMutex;
};
StringReverser.cpp
#include "StringReverser.h"
#include <iostream>
#include <string>
StringReverser* StringReverser::instance = nullptr;
std::mutex StringReverser::iMutex;
StringReverser* StringReverser::getInstance()
{
std::unique_lock<std::mutex> lock(iMutex);
if (nullptr == instance) {
instance = new StringReverser();
}
return instance;
}
void StringReverser::reverse()
{
/* input */
std::string inputString;
std::cin >> inputString;
/* verify */
for (auto& ele: inputString) {
if ('a'> ele || 'z' < ele || 1000 < inputString.size()) {
std::cout << "Invalid input" << std::endl;
return;
}
}
/* reverse */
std::string outputString;
for (auto idx = inputString.rbegin(); idx != inputString.rend(); idx++) {
outputString += *idx;
}
std::cout << outputString << std::endl;
}
main.cpp
#include "StringReverser.h"
int main(int argc, char** argv)
{
auto reverser = StringReverser::getInstance();
reverser->reverse();
return 0;
}