9.22烽火笔试
A了前两道,第三道远航,应该是个BFS,但是没时间了,前面两道花的时间有点长,因为没考虑全,所以一开始都没AC,简单说一下前两道题和思路吧!
第一道,判断一个数是不是超偶数,超偶数就是说每一位都是偶数。
解题思路:思路很简单就是判断每一位是不是偶数,但是要注意的是,位数太长,不可以用数来接受,用字符串接受输入,然后再遍历判断每一位是不是偶数就可以了!
第二道,你有两个仅包含小写字母的字符串S1,S2。你可以对这两个串内部任意排列。设排列之后的两个串分别为S1’,S2’ ,然后你会将S2’,拼接在S1’后面,形成一个新的串,设为T。
你的目标是使得T为回文串。回文串是指这个字符串从左到右读和从右到左读都一样,比如a,abcba,abba都是回文串,而bc, opqo,abcb都不是。
你想知道你的目标是否可以达成。
解题思路:
这个题迷惑性很大,我一开始就是用哈希表就直接统计两个字符串中字符的次数,只要是奇数次数不大于1个就行,但是只A了18%。后来发现如果aaabbbcc和ab也不行,所以这个思路不对!!
换一个思路,先用短的字符串去匹配长的字符串,如果没有完全匹配成功,就直接 false,提取出剩余的部分,在判断这个可不可以成为一个回文串就可以了。
就是用一个哈希表记录短字符串的字母出现次数,定义一个剩余串,然后遍历长的字符串,判断是不是哈希表中有,有的话哈希表对应次数减一,如果没有也就是哈希表次数为0,就放入到剩余串中,遍历完之后,再遍历一边哈希,看看还有没有不是0的,如果有就说明有没有匹配的,所以肯定不能拼成回文串,如果都是0,那就看看剩余串可不可以是回文的,判断方法就和第一个思路一样了,就A掉了
第三题,远航,没时间了,一看也麻烦,需要各种条件判断还需要BFS,没时间做了😂,也忘了骗骗分了😂
第一道,判断一个数是不是超偶数,超偶数就是说每一位都是偶数。
解题思路:思路很简单就是判断每一位是不是偶数,但是要注意的是,位数太长,不可以用数来接受,用字符串接受输入,然后再遍历判断每一位是不是偶数就可以了!
第二道,你有两个仅包含小写字母的字符串S1,S2。你可以对这两个串内部任意排列。设排列之后的两个串分别为S1’,S2’ ,然后你会将S2’,拼接在S1’后面,形成一个新的串,设为T。
你的目标是使得T为回文串。回文串是指这个字符串从左到右读和从右到左读都一样,比如a,abcba,abba都是回文串,而bc, opqo,abcb都不是。
你想知道你的目标是否可以达成。
解题思路:
这个题迷惑性很大,我一开始就是用哈希表就直接统计两个字符串中字符的次数,只要是奇数次数不大于1个就行,但是只A了18%。后来发现如果aaabbbcc和ab也不行,所以这个思路不对!!
换一个思路,先用短的字符串去匹配长的字符串,如果没有完全匹配成功,就直接 false,提取出剩余的部分,在判断这个可不可以成为一个回文串就可以了。
就是用一个哈希表记录短字符串的字母出现次数,定义一个剩余串,然后遍历长的字符串,判断是不是哈希表中有,有的话哈希表对应次数减一,如果没有也就是哈希表次数为0,就放入到剩余串中,遍历完之后,再遍历一边哈希,看看还有没有不是0的,如果有就说明有没有匹配的,所以肯定不能拼成回文串,如果都是0,那就看看剩余串可不可以是回文的,判断方法就和第一个思路一样了,就A掉了
第三题,远航,没时间了,一看也麻烦,需要各种条件判断还需要BFS,没时间做了😂,也忘了骗骗分了😂
全部评论
第三题没考虑无限大,直接dfs过了18😢
俺和你一模一样
第三道题是Magic Ship
第二题老哥的思路明白了,我也是查找长的字符串里是否完全含有短的,没有就输出NO,有的话就删除对应字符,看剩下的是不是能形成一个回文,但是还是只过了18%
。顺便问一下老哥,你举得例子aaabbbcc和ab我觉得应该也是可以形成回文串的吧,比如ababccbaba,不知道我是不是理解错了这个题目的意思
相关推荐
点赞 评论 收藏
分享

点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享