社区
C#
帖子详情
来个算法题活动下大家的大脑!
SuperTyro
2008-06-17 09:00:52
这个题目是这样的: 需要将 中文的数字字符串 经过转换为数字
也就是说 一万二千三百四十五 结果为 12345 是这样的 比比谁的算法最效率!
...全文
658
101
打赏
收藏
来个算法题活动下大家的大脑!
这个题目是这样的: 需要将 中文的数字字符串 经过转换为数字 也就是说 一万二千三百四十五 结果为 12345 是这样的 比比谁的算法最效率!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
101 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tuzhengqou
2008-06-22
打赏
举报
回复
[Quote=引用 13 楼 okin1 的回复:]
学习了,收藏一下~~~~~~~~~~~~~~
[/Quote]
SuperTyro
2008-06-21
打赏
举报
回复
[Quote=引用 96 楼 fuadam 的回复:]
引用 95 楼 allen303allen 的回复:
类似浙大校赛javaman出的一道题,分三段考虑直接模拟就是,简单题啊。
关键你算法速度要快,先比我的算法快再说
[/Quote]
目前 最快的算法 就是 fuadam 的 如果周末前 再没有更快的代码的话
周末结贴
nec_5499
2008-06-21
打赏
举报
回复
SSXYC
2008-06-21
打赏
举报
回复
俺在项目里用过,打印报表时要123456转换成壹拾贰万叁仟...
fuadam
2008-06-20
打赏
举报
回复
SuperTyro:
我的代码在你机器上跑了吗,效果怎么样
fuadam
2008-06-20
打赏
举报
回复
[Quote=引用 95 楼 allen303allen 的回复:]
类似浙大校赛javaman出的一道题,分三段考虑直接模拟就是,简单题啊。
[/Quote]
关键你算法速度要快,先比我的算法快再说
allen303allen
2008-06-20
打赏
举报
回复
类似浙大校赛javaman出的一道题,分三段考虑直接模拟就是,简单题啊。
DongloveRen
2008-06-20
打赏
举报
回复
恩,对.昨天做了之后帖代码,提示回复内容太长.
后面的实现也跟上面差的不多.
else
{
switch()
{
case '':
....
..........
......
}
SuperTyro
2008-06-20
打赏
举报
回复
[Quote=引用 93 楼 sz7093948 的回复:]
不错,值得学习哦
楼主想法不错,但这个在哪一方面会用到这个数据啊
[/Quote]
中文的数值转换 的用处 很多的 这只是一个简单的例子
来个实际的例子就是 我们去银行添单子的时候 写的都是大写的汉字数字 这样的
这种去求仔细想想 用到的地方 还是很多的...
编程源自生活...
SuperTyro
2008-06-20
打赏
举报
回复
楼上的代码 好像没有贴全。。。
sz7093948
2008-06-20
打赏
举报
回复
不错,值得学习哦
楼主想法不错,但这个在哪一方面会用到这个数据啊
fuadam
2008-06-20
打赏
举报
回复
我觉得用字符串方式处理就是慢
SuperTyro
2008-06-20
打赏
举报
回复
[Quote=引用 90 楼 fuadam 的回复:]
SuperTyro:
我的代码在你机器上跑了吗,效果怎么样
[/Quote]
你的代码 在我的机器上 跑起来是 380-400 左右
我的代码 根本追不上...
DongloveRen
2008-06-19
打赏
举报
回复
private void button1_Click(object sender, EventArgs e)
{
string _bigNumber = textBox1.Text;
string _smallNumber = "";
int j=0;
long sum=0;
for (int i = 0; i < _bigNumber.Length; i++)
{
if (_bigNumber[i] == '亿')
{
long partSum = 0;
long[] flag = new long[i - 1];
for (j = 0; j < i; j++)
{
switch (_bigNumber[j])
{
case '一':
flag[j] = 1;
break;
case '二':
flag[j] = 2;
break;
case '三':
flag[j] = 3;
break;
case '四':
flag[j] = 4;
break;
case '五':
flag[j] = 5;
break;
case '六':
flag[j] = 6;
break;
case '七':
flag[j] = 7;
break;
case '八':
flag[j] = 8;
break;
case '九':
flag[j] = 9;
break;
case '亿':
flag[j] = 100000000;
break;
case '万':
flag[j] = 10000;
break;
case '千':
flag[j] = 1000;
break;
case '百':
flag[j] = 100;
break;
case '十':
flag[j] = 10;
break;
default:
j++;
break;
}
}
for (int k = 0; k < j; k++)
{
if (flag[k] >= 10)
{
partSum += flag[k - 1] * flag[k];
}
else if ((k == j - 1) && (flag[k] < 10))
{
partSum += flag[k];
}
}
sum += partSum * 100000000;
}
else if (_bigNumber[i] == '万')
{
long partSum = 0;
long[] flag = new long[i - j - 1];
for (int k = 0; k < i - j - 1; k++)
{
switch (_bigNumber[k])
{
case '一':
flag[k] = 1;
break;
case '二':
flag[k] = 2;
break;
case '三':
flag[k] = 3;
break;
case '四':
flag[k] = 4;
break;
case '五':
flag[k] = 5;
break;
case '六':
flag[k] = 6;
break;
case '七':
flag[k] = 7;
break;
case '八':
flag[k] = 8;
break;
case '九':
flag[k] = 9;
break;
case '千':
flag[j] = 1000;
break;
case '百':
flag[j] = 100;
break;
case '十':
flag[j] = 10;
break;
default:
j++;
break;
}
}
for (int k = 0; k < i - j - 1; k++)
{
if (flag[k] >= 10)
{
partSum += flag[k - 1] * flag[k];
}
else if ((k == j - 1) && (flag[k] < 10))
{
partSum += flag[k];
}
}
sum += partSum * 10000;
}
else//千
{
}
Janyue
2008-06-19
打赏
举报
回复
熙熙攘攘,皆为f来!
fuadam
2008-06-19
打赏
举报
回复
我建议大家可以把代码统一发给SuperTyro ,让他下测下速度,然后公布大家的成绩。不要再在这个帖子里贴代码了,看着太乱,而且打开的速度也太慢
SuperTyro
2008-06-19
打赏
举报
回复
你跑跑 funadam 的算法看看
他的速度 目前好象是最快的
还有就是 清洁工大哥那代码 好象也很简洁的
s330481
2008-06-19
打赏
举报
回复
分配了1G内存的虚拟机上,上面Oracle9i sql2005 什么的装了一大堆,所以速度慢点哈
我自己的代码不是还跑了2000多ms么。。。。。
看不过去了,所以把你的代码跑下参照一下速度
fuadam
2008-06-19
打赏
举报
回复
用24楼测试数据测三次 2094ms 2171ms 2144ms
24楼的代码在我机子上耗时1450ms左右
==========================================
什么配置机器,是release下吗
shadowgreen
2008-06-19
打赏
举报
回复
有意思,可惜我不会啊~!
我真的是太菜·····
加载更多回复(80)
史上最系统的
算法
与数据结构书籍推荐!!!!!吐血整理!!
史上最系统的
算法
与数据结构书籍推荐!!!!!吐血整理!! 史上最系统的
算法
与数据结构书籍推荐!!!!!吐血整理!! 前言:技术书阅读方法论 一.速读一遍(最好在1~2天内完成) 人的
大脑
记忆力有限,在一天内快速看完一本书会在
大脑
里留下深刻印象,对于之后复习以及总结都会有特别好的作用。 对于每一章的知识,先阅读标
题
,弄懂大概讲的是什么主
题
,再去快速看一遍,不懂也没有关系,但是一定要在不懂的地方做个记号,什么记号无所谓,但是要让自己后面再看的时候有个提醒的作用,看看第二次看有没有懂了些。 二.精读一遍(在2周
如何有效地刷
算法
题
?
算法
知识点繁多,企业考察的
题
目千变万化,面对越来越近的“金九银十”,我给大家准备好了一套比较完善的学习方法,希望能帮助大家在有限的时间里尽可能系统快速的恶补
算法
,通过高效的学习来提高大家面试中
算法
模块的通过率。这一套学习资料既有文字档也有视频,里面不仅仅有关键知识点的整理,还有案例的
算法
相关部分的讲解,可以帮助大家更好更全面的进行学习,二者搭配起来学习效果会更好。部分资料展示:有了这套学习资料,坚持刷
题
一周,你就会发现自己的
算法
知识体系有明显的完善,离大厂Offer的距离更加近。
8个面试应对
算法
题
小技巧
跟大家分享一些在处理
算法
题
时的技巧和方法,尤其是在面试或者是比赛的时候应付难
题
的技巧。说不定就可以在关键时刻起到作用。冷静 首先要说的就是冷静,越是一些重要的节点,越是要冷静。一旦心里慌乱,手足无措,基本上
大脑
也就不转了,别说超常发挥了,就连正常发挥都不可能。面试是一个非常容易紧张的场合,即使我参加过数十次面试,也依然免不了会紧张,尤其是一些充满挑战的面试。比如说久负盛名的公司,或者是全英文的面试等等。所以会紧张是正常现象,大佬们也不例外。在面试之前发现自己紧张,千万不要和这种情绪对抗,想要让自己不紧张,这
【
算法
】三道
算法
题
两道难度中等一道困难
上一篇是
算法
题
目接下来继续学习下
算法
题
,用Java解答,可能更能激发一下
大脑
思考。
数据结构与
算法
(Java版) | 关于以上几个经典
算法
面试
题
的一个小结
为了让大家明白
算法
的重要性,以上我就举了几个经典的
算法
面试
题
,我的目的也很简单,就是希望引起大家对
算法
的一个兴趣。之所以在正式讲解数据结构与
算法
之前引出这几个经典的
算法
面试
题
,是因为我想告诉大家如下三点。而且,从目前的情况来看,不会
算法
的程序员迟早会被逐渐淘汰,所以大家一定要对
算法
重视起来,对它要有一个足够的认识。而正是鉴于此,我才在前两讲中给大家列举了那几个经典的
算法
面试
题
。接下来,我们不妨对前两讲中介绍的几个经典
算法
面试
题
做一个总结,复习复习一下。
C#
111,098
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章