【Java程序算法题】紫龙游戏 笔试题

说明:

  • 以下每题计时30分钟。
  • 只完成部份题目时,将按用时和题目难度衡量。

题目A:字串组合

输入任意包含英文字符或数字的字符串(长度不超过20个字符),请Java编程打印所有英文字母不同大小写组合的字符串。
如输入"012e4s"时,则输出:
“012e4s”,“012e4S”,“012E4s”,“012E4S”。
如输入"123"时,则输出:
“123”
如输入"AB"时,则输出:
“ab”,“aB”,“Ab”,“AB”
如输入""时,不输出内容。

题目B:大量字符排序

输入大量英文字符,请Java编程实现尽可能快的排序算法。时间复杂度低者为优。例如:
输入[‘a’,‘p’,‘p’,‘l’,‘e’]
输出[‘a’,‘e’,‘l’,‘p’,‘p’]
注意: 实际chars内容全部为小写英文字符,长度不大于10MB。

public class Sort
{
    
    
    public static void sort(char[] chars)
    {
    
    
    }
}

题目C:分门别类

游戏角色有五个属性:力量、敏捷、耐力、智力、幸运,共同决定了角色能力倾向。
已输入某个角色下标,请Java编程完成find函数,使之能找出角色库中你认为倾向与输入角色最接近的另一个角色。

public class RoleData
{
    
    
    public float[] properties=new float[5];
}
public class RoleUtil
{
    
    
    public static RoleData find(List<RoleData> roleDataList,int inputRoleDataListIndex)
    {
    
    
        return null;
    }
}

题目D:病毒传播

某国国会中Rump总统正在开会。此时坐位构成了一个二维矩阵。
新冠病毒只能在相邻坐位间传播(横竖斜都可以),每次传播需要1分钟。
戴口罩可以免疫病毒。
假设任意议员染毒,求是否能够感染到Rump总统?
如果能感染,至少需要多少分钟?
请Java编程完善CoronaVirus类,使detect能检测到感染结果:
 detect函数返回0表示不会感染到Rump总统
 detect函数返回其它值表示会感染,且计算出了最短感染时间(分钟)。
注:map数组内容含意:
• 0表示没戴口罩议员
• 1表示已戴口罩议员
• 2表示没戴口罩Rump总统
• 3表示没戴口罩且染毒议员
注2:下面是CoronaVirus类:

public class CoronaVirus
{
    
    
    public static int detect(int[] map,int width,int height)
    {
    
    
        return 0;
    }
}

下面是示例测试代码:

public class CoronaVirusTest
{
    
    
    public void test()
    {
    
    
        int[] map=new int[]{
    
    
            0,0,0,2,0,0,0,0,
            0,1,1,0,0,0,0,0,
            0,0,1,1,1,0,0,1,
            0,1,1,0,0,0,0,0,
            0,1,0,0,1,1,1,0,
            0,1,0,0,1,0,0,0,
            0,0,0,0,1,0,3,0,
            1,0,1,0,0,0,0,0,
        };
        int time=CoronaVirus.detect(map,8,8);
    }
}

猜你喜欢

转载自blog.csdn.net/qq_36045898/article/details/114069284