社区
C#
帖子详情
来个算法题活动下大家的大脑!
SuperTyro
2008-06-17 09:00:52
这个题目是这样的: 需要将 中文的数字字符串 经过转换为数字
也就是说 一万二千三百四十五 结果为 12345 是这样的 比比谁的算法最效率!
...全文
636
101
打赏
收藏
来个算法题活动下大家的大脑!
这个题目是这样的: 需要将 中文的数字字符串 经过转换为数字 也就是说 一万二千三百四十五 结果为 12345 是这样的 比比谁的算法最效率!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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)
C语言数据结构与
算法
编程、链表、树、栈、队列、排序
算法
一个优秀的C语言开发大牛必定是擅长数据结构与
算法
的,所以数据结构是编程必学的内容之一!数据结构(Data Structure) :是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关 系的数据元素的 集合。
算法
(Algorithm):
算法
就是一系列高效的计算步骤,用来将输入数据转化成输出结果。数据结构用于解决数据存储问
题
,而
算法
用于处理和分析数据!黄老师通过对数据结构核心知识点: 顺序表、链表、栈、队列、树、二叉树、遍历、插入、删除、排序、查找
算法
的细心讲解,结合生动的C语言实战代码演练、帮助学员快速掌握数据结构的核心内容、为STL、Boost标准库的学习、企业级
算法
开发打下坚实的基础!本课程适合有一定C语言基础编程的童鞋,对 C、C++数据结构与
算法
编程感兴趣的童鞋!
史上最系统的
算法
与数据结构书籍推荐!!!!!吐血整理!!
对于每一章的知识,先阅读标
题
,弄懂大概讲的是什么主
题
,再去快速看一遍,不懂也没有关系,但是一定要在不懂的地方做个记号,什么记号无所谓,但是要让自己后面再看的时候有个提醒的作用,看看第二次看有没有懂了些...
8个面试应对
算法
题
小技巧
跟大家分享一些在处理
算法
题
时的技巧和方法,尤其是在面试或者是比赛的时候应付难
题
的技巧。说不定就可以在关键时刻起到作用。冷静 首先要说的就是冷静,越是一些重要的节点,越是要冷静。一旦心里慌乱,手足无措,...
数据结构与
算法
(Java版) | 关于以上几个经典
算法
面试
题
的一个小结
为了让大家明白
算法
的重要性,以上我就举了几个经典的
算法
面试
题
,我的目的也很简单,就是希望引起大家对
算法
的一个兴趣。之所以在正式讲解数据结构与
算法
之前引出这几个经典的
算法
面试
题
,是因为我想告诉大家如下...
华为od的一些
算法
题
输入描述:输入一个整数参数M 输出描述:如果输入参数M小于等于1或者大于等于100,输出“ERROR!”;否则按照原先的编号从小到大的顺序,以英文逗号分割输出编号字符串 示例1: 输入 输出 3 58,91 编写函数,计算输入...
C#
110,534
社区成员
642,576
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章