https://i.imgur.com/1p7si7t.jpg
https://i.imgur.com/86KmZwv.jpg
https://i.imgur.com/0PN7VEy.jpg
如题 完全不懂为什么 跪求解释OTZ
作者:
CoNsTaR ((const *))
2017-10-04 05:04:00打高空的说法,因为 c/c++ 有 side effect,结案
与其说不同意楼上,不如说我不知道楼上在讲什么?你的两个 scanf 写错了,把 warning 全开就会有警告了这些地方要小心点,出槌时会出现一个摸不著头脑的 bug然后你的算法是错的,试试 aabbb 和 cccdd
作者: yvb 2017-10-04 08:37:00
发[问题]不是有格式?且程式用贴图有点糟,建议用置底那篇方式.然后scanf处有warning但不影响; 后半比较像是算总字数而已.问题在于, printf 出来的 13 13 是否如同预期.也就是说, 犯了置底十三诫中,第一诫的延伸, 阵列后段无初值.
作者:
CoNsTaR ((const *))
2017-10-04 10:32:00楼楼上表示档案 IO?我都只用网络 socket 和 sql
我昨晚是喝多少... Orzyvb 说的没错,问题出在阵列无初值你以为阵列后段全部是 0 其实并不。不信可以在 scanf 前加上 memset(first,0,100); 和memset(second,0,100); 别忘了 #include <string.h>
呃 aabbb跟cccdd显示是对的啊我看看楼上大大说的 我是完全新手所以有些术语听不太懂喔喔 可以了 原来要先设成0然后发文格式不对不好意思 没什么用过这版
噗 不是哪边有问题 是哪边没问题用到三层for 你肿大了 比西瓜还大你最好重发一篇 照规定格式贴好
作者: stucode 2017-10-04 13:02:00
建议原PO从头思考一下,不只是时间复杂度的问题,你的算法从一开始就没有输出正确结果。例如:ab跟aa
for最讨厌的就是在for里面更动循环计数器(控制变量)
对啦,(abcde, aaaaa) 或 (abcdef, aaabbb) 这种组合
虽然C不太管 但是有两个counter同时前进 条件也不一定正常应该用while做
多赠送一组测资 (abc, abcskdfjskghdfkjghd)其实题目有提示正确的算法了,麻烦把题目再看一次...
原po是用286在算吗?XDD 终止条件设字串长度就好了
没 我只是天生反骨不想用提示做而已……提示做法我已经花10分钟打完了
喔喔喔,原来是太强所以要做自我挑战吗这题如果让我来做,会把两个字串都sort过再strcmp即可
对,字串中的字母照顺序重排,在这题就顺便剔除非字母两个字串如果是同一组字母的不同排列sort过自然会变相同这个作法复杂度不如题目提示的distribution counting快
作者:
CoNsTaR ((const *))
2017-10-04 22:37:00其实题目的做法不也是先做 bucket sort 再比较两个阵列吗
可以视为distribution sort或bucket sort的前半部没错如果要我为我的方法想些广告单上的亮点,我想应该会是很好写,两个 qsort() 一个 strcmp() 就收工了但题目的方法可以处理接近无限大的字串,完全望尘莫及实际上如何做,留给原PO脑力激荡一下,显然不能用scanf我说的不一定对就是了,也许我今天也喝了两瓶高粱发酒疯