作者sjgau (sjgau)
看板Fortran
标题Re: [问题] 一个简单的问题
时间Fri Feb 26 07:33:59 2010
通常,我都是不考虑使用的语言是什麽,
先采用 虚拟码的方式来表现 解题的方法。
假设,你的资料是 储存在硬碟的档案之中,
使用
CHAR*1 CH(1000)
的方式读进来,放到 CH(1000) 的阵列 里面。
然後,假设阵列的第一个元素的代号是 1
一共有 MAX 个CHAR 读进来
IP= 0
JP= IP + 1
ICT= 0
WHILE (JP .LT. MAX) DO {
IP= IP + 1
JP= IP + 1
WHILE (CH(JP) .EQ. CH(IP)) {
IP= IP + 1
JP= IP + 1
}
! 找到第一个不同
ICT= ICT + 1
DIF(ICT)= JP
END DO
DIF(1) - DIF(ICT) 所放的,就是 你要的 资料
以上的 演算法,没有经过验证,
不过 大致上的 意思到了
有问题的话,再跟我 联络
※ 引述《bennyhsu (阿彬)》之铭言:
: 各位大大好,小弟有一个小问题想请问一下
: 假如我这边有一串资料
: EX:
: 000001111112222222333333333334444444444455555555....
: 每个数字的个数都不相同
: 那我要怎麽写才能找出是在第几个跳成1,又在第几个跳成2
: 以此类推....
: 我的想法是,假如上下两个数字不同的时候就记录其位置
: 可是我始终写不出来...麻烦大大们解答
: 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.20.132.129
1F:推 bennyhsu:谢谢大大的回答 感恩!!! 02/27 02:45