今年机试有两个组,第一组题比较简单,第二组题的第二个较难。
1.输入2~10个字符串,如果有相同前缀则输出,否则输出“false”
例:
输入:word world worship
输出:wor
输入:Word world
输出:false
这一题由于不能事先知道读入几个字符串因此不能使用cin>>str来读入(仅仅读入第一个),而应该用getline(cin,str)
2.给一行非负整数,表示从这个位置最大可向后移动的距离,问是否能够到达最后一个位置,如果能则输出一种方式,否则输出“false”
例:
输入:1 2 3 4 5
输出:1 2 3 4 5或1 2 4 5或1 2 3 5...
输入:1 1 1 0 4
输出:false
这个题用简单的for或者while循环是做不出来的,我用的是回溯的方法,当然也要随时存储每走一步的值,走不通再返回的时候需要将值吐出来
室友用的是连通图的方法,大概就是,将可以走到的地方连接起来。