leetcode 7: Reverse integer (C#版)
2016-04-12 10:19
525 查看
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
这题最初的思路是采用list的reverse功能,但是用了以后发现比较reverse前后的列表并不简便,本以为.equals功能可以比较数组、列表什么的是否完全一样,结果整半天并不能。于是最后只写出了一个暴力求解。。。public class Solution {
public long Reverse(long x) {
long x2;
string str;
char[] charnum;
if (x < 0)
{
long x1 = -x;
charnum = Convert.ToString(x1).ToCharArray();
char rep;
//暴力解决。。。
for (int i = 0; i < charnum.Length; i++)
{
for (int j = charnum.Length - i - 1; j > 0; j--)
{
if (j <= i)
break;
rep = charnum[i];
charnum[i] = charnum[j];
charnum[j] = rep;
break;
}
}
str = new string(charnum, 0, charnum.Length);
x2 = Convert.ToInt64(str);
long x3=-x2;
return x3;
}
else
{
charnum = Convert.ToString(x).ToCharArray();
char rep;
for (int i = 0; i < charnum.Length; i++)
{
for (int j = charnum.Length - i - 1; j > 0; j--)
{
if (j <= i)
break;
rep = charnum[i];
charnum[i] = charnum[j];
charnum[j] = rep;
break;
}
}
str = new string(charnum, 0, charnum.Length);
x2 = Convert.ToInt64(str);
return x2;
}
}
}
到网上看了下大神的做法,发现自己的思路还是太Naive了。。。
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int x = 15349;
int ans = 0;
int tmp = Math.Abs(x);
while(tmp > 0)
{
int b = tmp % 10;
ans = ans*10 + b;
tmp /= 10;
}
int res= x > 0 ? ans:-ans;
Console.WriteLine(res);
}
}
}
引自LeetCode-Reverse Integer[模拟] | Acm之家 http://www.acmerblog.com/leetcode-solution-reverse-integer-6359.html
Example1: x = 123, return 321
Example2: x = -123, return -321
这题最初的思路是采用list的reverse功能,但是用了以后发现比较reverse前后的列表并不简便,本以为.equals功能可以比较数组、列表什么的是否完全一样,结果整半天并不能。于是最后只写出了一个暴力求解。。。public class Solution {
public long Reverse(long x) {
long x2;
string str;
char[] charnum;
if (x < 0)
{
long x1 = -x;
charnum = Convert.ToString(x1).ToCharArray();
char rep;
//暴力解决。。。
for (int i = 0; i < charnum.Length; i++)
{
for (int j = charnum.Length - i - 1; j > 0; j--)
{
if (j <= i)
break;
rep = charnum[i];
charnum[i] = charnum[j];
charnum[j] = rep;
break;
}
}
str = new string(charnum, 0, charnum.Length);
x2 = Convert.ToInt64(str);
long x3=-x2;
return x3;
}
else
{
charnum = Convert.ToString(x).ToCharArray();
char rep;
for (int i = 0; i < charnum.Length; i++)
{
for (int j = charnum.Length - i - 1; j > 0; j--)
{
if (j <= i)
break;
rep = charnum[i];
charnum[i] = charnum[j];
charnum[j] = rep;
break;
}
}
str = new string(charnum, 0, charnum.Length);
x2 = Convert.ToInt64(str);
return x2;
}
}
}
到网上看了下大神的做法,发现自己的思路还是太Naive了。。。
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int x = 15349;
int ans = 0;
int tmp = Math.Abs(x);
while(tmp > 0)
{
int b = tmp % 10;
ans = ans*10 + b;
tmp /= 10;
}
int res= x > 0 ? ans:-ans;
Console.WriteLine(res);
}
}
}
引自LeetCode-Reverse Integer[模拟] | Acm之家 http://www.acmerblog.com/leetcode-solution-reverse-integer-6359.html
相关文章推荐
- 如何在 Linux/Windows/MacOS 上使用 .NET 进行开发
- c#调用COM组件
- 如何在 Linux 中安装微软的 .NET Core SDK
- C#实现把指定数据写入串口
- C#动态创建button的方法
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#实现给图片加水印的方法
- C#使用加边法计算行列式的值
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#中的delegate委托类型基本学习教程
- C#实现子窗体与父窗体通信方法实例总结
- C#通用邮件发送类分享
- 举例讲解C#中自动实现的属性
- C#中this的用法集锦
- C#数据结构之顺序表(SeqList)实例详解
- C#.NET获取拨号连接的宽带连接方法
- C#异步绑定数据实现方法
- RabbitMQ入门与使用篇 推荐