【C++】String and Number Reverse

Reverse ,看似一个简单的功能,但它却出现在许多公司的面试题库。

那我们直接来看它是如何实现的吧!


学习目标: C++ String and Number Reverse 实务

学习难度: ☆☆☆


首先是String Reverse

#include <iostream>

using namespace std;

string reverse(string input)
{
	string output="";

    for(int i=input.length()-1;i>=0;i--)
    {
        output=output+input[i];
    }
    
	return output;
    
}

int main()
{
	string input="Wilson";

	cout<<reverse(input)<<endl;

	return 0;
}

这样就能将input的string给反转呢!


再来是Integer Reverse

#include <iostream>

using namespace std;

int reverse(int input) 
{     
    if(input==0) return 0; 
        
    int n = (input<0)?1:0; //判断input正负数
        
    input = abs(input); 
        
    long int output = input%10;
        
    input /= 10;
        
    while(input>0)
    {
        output *= 10;
            
        output += (input%10);
            
        input /= 10;
    }
        
    if(n == 1) output = output - 2*output;
        
    if(output < -2147483648 || output > 2147483647) output = 0;
        
    return output;
}

int main()
{
	
	int input;
	
	cin>>input;
	
	if(cin.fail())
	{
		cin.clear(); //错误flag改回0,用意是让我们能继续输入
		
		cin.sync(); //清空输入暂存 
				
		main();	
	}
    
	else
	{
		cout<<reverse(input)<<endl;
	}
	
	return 0;
}

参考资料:

https://www.twblogs.net/a/5bb048912b7177781a0febe9

https://leetcode.com/problems/reverse-integer/


<<:  探讨 C++ and C# 的差异

>>:  个人笔记 从零开始 维修单派工 系统流程图

第二十九天:为 IntelliJ Platform 设计的 TeamCity Plugin

在我们整个系列教学里,所有的操作都是在 TeamCity 的 Web UI 上完成,而 TeamCi...

LeetCode解题 Day25

1293. Shortest Path in a Grid with Obstacles Elimi...

D-11 注入 ? autofac ? dependency injection

关於注入 基於关注点分离所以要做到依赖注入,相依於介面而非实做,如此要抽换实作的内容就显得比较方便,...

如何把Spotify搜寻框加到自己网站?

请教各位高手,如这个卖纪念品的网站 https://myspotifyplaque.com/ 他可以...

DAY 1:Hey! Go Design Patterns

大家好,本系列文章探讨经典 Design Patterns 在现代语言 Golang 的演变。虽然...