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/