[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

分割好了
还要慢慢理解
代码有点不太完美 不过也差不多了
很是感谢 这个问题是偶尔从书中找到的 只要叫我们自己找找
测试了一下
23 12 14 15 16 17 18 19 4564 213 456 123 456 789 56 231
12 14 15 16 17 18 19 213 231
最长的数列其实应为
12 14 15 16 17 18 19 123(或213) 456 789
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

嘿嘿,多谢基拉大大...考验你手工分段的时候到了!

TOP

  1. @setlocal enabledelayedexpansion&set/pk=&set i=1
  2. @for %%i in (%k%) do @set/ai+=1&set m=0&set r=&(@for /l %%j in (1,1,!i!) do @if !e%%j! lss %%i if !m! lss !l%%j! set m=!l%%j!&set r=!r%%j!)&set r!i!=!r! %%i&set/a l!i!=m+1&set e!i!=%%i
  3. @echo!r%i%!&pause
复制代码
253B[最近疯狂于文本缩减]

[ 本帖最后由 Seter 于 2009-10-2 20:45 编辑 ]
1

评分人数

    • 基拉freedom: 谢谢了 你文本缩减了 我可就惨啦PB + 5 + 1

TOP

同样的题目我用C做过,使用DP算法完美解决...我去温习下看看能不能做...

TOP

例如 1 2 3 4 5 6 10 9
答案应为 1 2 3 4 5 6 9
而不是1 2 3 4 5 6 9 10
8L的说得对
基础的 那只要求以第一个数为基准 给出一种答案就可以了 但升序的数组不可以有遗留哦
也就是本来可以1 2 3 4 5 6 9的 不能少数字 变成 1 3 4 5 6 9或其他的

1 2 3 4 5 6 10 也行??

[ 本帖最后由 bhsx 于 2009-10-2 17:53 编辑 ]

TOP

上面代码输入1 2 55 3 4 5 1 7 8 9
结果是 1 2  55

[ 本帖最后由 bhsx 于 2009-10-2 17:44 编辑 ]

TOP

输入 54 11 56 2 55 3 5 4 1 7 56 56 8 10
怎么结果:54  57
并不是你要的  54  56

TOP

传说中 题目变成最简单的了
只需找出就好了
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p a=输入一串数字
  4. set n=1
  5. for %%i in (%a%) do (
  6. set _!n!=%%i
  7. set /a n=!n!+1
  8. )
  9. set x=0
  10. set max=%_1%
  11. set /p=%max% <nul
  12. for /l %%i in (2 1 !n!-1) do (
  13. set /a "x=_%%i-max"
  14. if !x! gtr 0 set /p=!_%%i! <nul & set max= &set max=!_%%i!
  15. )
  16. pause
复制代码
其实原意是要向8L那样的 然后举出最长的数列....那个才是最难得 哎
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for %%i in (1 1 2 55 3 4 5 1 7 8 9 10) do (
  3. set ...%%i=0000%%i
  4. set /a ...count%%i+=1
  5. set ...!...%%i:~-4!=%%i=!...count%%i!
  6. set ...%%i=
  7. )
  8. for /f "tokens=1,2,* delims==" %%i in ('set ...') do (
  9. for /l %%x in (1,1,%%k) do set /p =%%j <nul)
复制代码
不知道高不高效.......

[ 本帖最后由 bhsx 于 2009-10-2 16:48 编辑 ]
1

评分人数

    • 基拉freedom: 一样误解我的意思了 而且即使是排序 代码也 ...PB + 5

TOP

54 56
其实题目可以加深 例如求删除最少的数 输出最长的
可惜我还没怎么想出来 哎
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

可能是我理解不够
要是以第一个数为基准 那就直接在数组里找吧 排序也不要
让N + 1 递增 然后 标记
另数组 ”54 11 56 2 55 3 5 4 1 7 56 56 8 10“
最终结果是?

[ 本帖最后由 terse 于 2009-10-2 16:34 编辑 ]

TOP

恩 ls说的对
所以这里只要求给出一种就可以了
即以第一个数为基准
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

1 2 55 3 4 5 56 7 8 9

1>.删去55 56后
1 2 3 4 5 7 8 9有序

2>.删去1 2 3 4 5 7 8 9 后
55 56 有序

3>.删去3 4 5 7 8 9后
1 2 55 56有序
……

这个规则不够严谨的话。。。

TOP

是排序
但数字的位置不能变
只能删除其中的数字 让剩下的呈升序排列
我没说清楚 对不起了
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

不是说排序的吗?
结果出来就是排好序的啊
1

评分人数

TOP

返回列表