今日头条在线笔试2018-03-25

简介: 1题目描述在n个元素的数组中,找到值为k的数字对去重后的个数image.pngimage.png//参考代码 30% casepublic class Main { public static void m...

1题目描述
在n个元素的数组中,找到值为k的数字对去重后的个数


img_b460aa1fa1b9c95a8e39d8ff10b57c50.png
image.png

img_11831d0296b9e5a222d1ab1a043a6a19.png
image.png
//参考代码 30% case
public class Main {
    public static void main(String[] args) {
        
    Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int k = sc.nextInt();
       
        int arr[] = new int[n];
        
        for(int i = 0; i < n; i++){
            arr[i] = sc.nextInt();
        } 
        
        System.out.println(solve(arr,k));
    }
    
    static int solve(int arr[], int k){
        int len = arr.length;
        ArrayList<Integer> rest = new ArrayList<>();
        for (int i = 0; i < len; i++) {
            for (int j = i + 1; j < len; j++) {
              if (Math.abs(arr[i] - arr[j]) == k && (!rest.contains(arr[i] + arr[j]))) {
                  rest.add(arr[i] + arr[j]);
              }
            }
          }
        
        return rest.size();
    }
}


2题目描述
打印输出下面的效果:
输入描述
第一行是一个整数n,接下来n行都是 由数字6构成的数学表达式(+,-,*法运算)
输出描述
用图形输出数学表达式的结果,如下效果图


img_3a9b7a38c6bb7bd2fb4cfcddfa23ba21.png
image.png

img_c5fe41b8bf53cefdbde5df3a0b5f3644.png
image.png
//AC 代码
public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();

        String arr[] = new String[n];

        for (int i = 0; i < n; i++) {
            arr[i] = sc.next();
        }

        for (int i = 0; i < n; i++) {
            int num = cal(arr[i]);
            String sNum = String.valueOf(num);
            int k = sNum.length();
            // System.out.println(sNum +"--"+k);
            int len = 5 * k + (k - 1) * 2;
            char[][] chars = new char[5][len];
            for (int p = 0; p < 5; p++) {
                for (int q = 0; q < len; q++) {
                    chars[p][q] = '.';
                }
            }

            for (int j = 0; j < k; j++) {
                // 取出字符后减去'0'(注意是字符0)就可以得到数值了,比如'1'-'0'=1;
                int shu = sNum.charAt(j) - '0';
                switch (shu) {
                case 0:
                    for (int p = 0; p < 5; p++) {
                        for (int q = 7 * j; q <= 7 * j + 4; q++) {
                            if (p == 0 || p == 4) {
                                chars[p][q] = '6';
                            }
                            if (q == 7 * j || q == 7 * j + 4) {
                                chars[p][q] = '6';
                            }
                        }
                    }
                    break;
                case 1:

                    for (int p = 0; p < 5; p++) {
                        chars[p][7 * j + 4] = '6';
                    }

                    break;
                case 2:
                    for (int p = 0; p < 5; p++) {
                        for (int q = 7 * j; q <= 7 * j + 4; q++) {
                            if (p == 0 || p == 4 || p == 2) {
                                chars[p][q] = '6';
                            }

                            if (q == 7 * j && p > 1) {
                                chars[p][q] = '6';
                            }

                            if (p < 2 && q == 7 * j + 4) {
                                chars[p][q] = '6';
                            }
                        }
                    }

                    break;
                case 3:
                    for (int p = 0; p < 5; p++) {
                        for (int q = 7 * j; q <= 7 * j + 4; q++) {
                            if (p == 0 || p == 4 || p == 2) {
                                chars[p][q] = '6';
                            }

                            if (q == 7 * j + 4) {
                                chars[p][q] = '6';
                            }
                        }
                    }
                    break;
                case 4:
                    for (int p = 0; p < 5; p++) {
                        for (int q = 7 * j; q <= 7 * j + 4; q++) {
                            if (p == 2) {
                                chars[p][q] = '6';
                            }

                            if (q == 7 * j && p < 1) {
                                chars[p][q] = '6';
                            }

                            if (q == 7 * j + 2) {
                                chars[p][q] = '6';
                            }
                        }
                    }
                    break;
                case 5:
                    for (int p = 0; p < 5; p++) {
                        for (int q = 7 * j; q <= 7 * j + 4; q++) {
                            if (p == 0 || p == 4 || p == 2) {
                                chars[p][q] = '6';
                            }

                            if (q == 7 * j && p < 1) {
                                chars[p][q] = '6';
                            }

                            if (p > 1 && q == 7 * j + 4) {
                                chars[p][q] = '6';
                            }
                        }
                    }
                    break;
                case 6:
                    for (int p = 0; p < 5; p++) {
                        for (int q = 7 * j; q <= 7 * j + 4; q++) {
                            if (p == 0 || p == 4 || p == 2) {
                                chars[p][q] = '6';
                            }

                            if (q == 7 * j) {
                                chars[p][q] = '6';
                            }

                            if (p > 1 && q == 7 * j + 4) {
                                chars[p][q] = '6';
                            }
                        }
                    }
                    break;
                case 7:
                    for (int p = 0; p < 5; p++) {
                        for (int q = 7 * j; q <= 7 * j + 4; q++) {
                            if (p == 0) {
                                chars[p][q] = '6';
                            }

                            if (q == 7 * j + 4) {
                                chars[p][q] = '6';
                            }
                        }
                    }
                    break;
                case 8:
                    for (int p = 0; p < 5; p++) {
                        for (int q = 7 * j; q <= 7 * j + 4; q++) {
                            if (p == 0 || p == 4 || p == 2) {
                                chars[p][q] = '6';
                            }

                            if (q == 7 * j) {
                                chars[p][q] = '6';
                            }

                            if (q == 7 * j + 4) {
                                chars[p][q] = '6';
                            }
                        }
                    }
                    break;
                case 9:
                    for (int p = 0; p < 5; p++) {
                        for (int q = 7 * j; q <= 7 * j + 4; q++) {
                            if (p == 0 || p == 2) {
                                chars[p][q] = '6';
                            }

                            if (q == 7 * j && p < 1) {
                                chars[p][q] = '6';
                            }

                            if (q == 7 * j + 4) {
                                chars[p][q] = '6';
                            }
                        }
                    }
                    break;

                }

            }

            for (int ii = 0; ii < chars.length; ii++) {
                System.out.println(new String(chars[ii]));
            }
        }
    }

    /**
     * 计算表达式的值
     * 
     * @param str
     * @return
     */
    static int cal(String str) {

        char[] cs = str.toCharArray();
        int ans = 6;
        for (int i = 1; i < cs.length; i++) {
            switch (cs[i]) {

            case '+':
                ans = ans + 6;
                break;
            case '-':
                ans = ans - 6;
                break;
            case '*':
                ans = ans * 6;
                break;
            case '6':
                break;
            }
        }
        return ans;
    }
}


3题目描述
字符串操作


img_a1213de450bcc433ec5f8215e3df517b.png
image.png

img_48b7afca5692c117016d0c09f81d4fa4.png
image.png


4题目描述


img_de8b820b66a85e0c49114a1c1b7a7b31.png
image.png
目录
相关文章
|
4天前
|
人工智能 安全 API
CoPaw:5分钟部署你的 AI助理
源自阿里巴巴开源生态的个人 AI 助理——CoPaw。作为阿里倾力打造的开源力作,CoPaw 完美打通钉钉、飞书、Discord 等多平台对话通道,支持定时任务自动化。内置 PDF/Office 深度处理、新闻摘要等强大技能,更开放自定义扩展接口。坚持数据全程私有化部署,绝不上传云端,让每一位用户都能在大厂技术加持下,拥有安全、专属的智能助手。
|
7天前
|
人工智能 自然语言处理 JavaScript
2026年Windows+Ollama本地部署OpenClaw保姆级教程:本地AI Agent+阿里云上快速搭建
2026年OpenClaw凭借本地部署、私有化运行的特性,成为打造个人智能体的核心工具,而Ollama作为轻量级本地大模型管理工具,能让OpenClaw摆脱对云端大模型的依赖,实现**本地推理、数据不泄露、全流程私有化**的智能体验。本文基于Windows 11系统,从硬件环境准备、Ollama安装与模型定制、OpenClaw部署配置、技能扩展到常见问题排查,打造保姆级本地部署教程,同时补充阿里云OpenClaw(Clawdbot)快速部署步骤,兼顾本地私有化需求与云端7×24小时运行需求,文中所有代码命令均可直接复制执行,确保零基础用户也能快速搭建属于自己的本地智能体。
8920 72
|
5天前
|
人工智能 安全 JavaScript
阿里云上+本地部署OpenClaw(小龙虾)新手攻略:解锁10大必备Skills,零基础也能玩转AI助手
2026年,开源AI代理工具OpenClaw(昵称“小龙虾”)凭借“能实际做事”的核心优势,在GitHub斩获25万+星标,成为现象级AI工具。它最强大的魅力在于可扩展的Skills(技能包)系统——通过ClawHub插件市场的数百个技能,能让AI助手从简单聊天升级为处理办公、学习、日常事务的全能帮手。
4099 9
|
6天前
|
人工智能 自然语言处理 机器人
保姆级教程:Mac本地搭建OpenClaw及阿里云上1分钟部署OpenClaw+飞书集成实战指南
OpenClaw(曾用名Clawdbot、Moltbot)作为2026年最热门的开源个人AI助手平台,以“自然语言驱动自动化”为核心,支持对接飞书、Telegram等主流通讯工具,可替代人工完成文件操作、日历管理、邮件处理等重复性工作。其模块化架构适配多系统环境,既可以在Mac上本地化部署打造私人助手,也能通过阿里云实现7×24小时稳定运行,完美兼顾隐私性与便捷性。
4310 9
|
8天前
|
人工智能 JSON JavaScript
手把手教你用 OpenClaw + 飞书,打造专属 AI 机器人
手把手教你用 OpenClaw(v2026.2.22-2)+ 飞书,10分钟零代码搭建专属AI机器人!内置飞书插件,无需额外安装;支持Claude等主流模型,命令行一键配置。告别复杂开发,像聊同事一样自然对话。
4681 13
手把手教你用 OpenClaw + 飞书,打造专属 AI 机器人
|
7天前
|
人工智能 监控 机器人
2026年零门槛部署 OpenClaw(Clawdbot)接入A股数据,实现24小时股票分析保姆级教程
在AI赋能金融分析的浪潮中,OpenClaw(原Clawdbot/Moltbot)凭借开源灵活的架构,成为个人投资者打造专属智能分析助手的首选。通过接入A股实时数据,它能实现24小时市场监控、涨跌预警、潜力股推荐等核心功能,彻底解放人工盯盘的繁琐。而阿里云的稳定部署环境,更让这套系统实现全天候不间断运行,成为真正的“金融AI助手”。 本文基于OpenClaw v2026.1.25稳定版与QVeris免费A股数据接口,详细拆解阿里云OpenClaw部署步骤、A股数据接入流程、高级分析功能配置及多平台联动技巧,所有代码命令均可直接复制复用,即使无技术基础也能在1小时内完成从部署到实战的全流程。
3368 11
|
3天前
|
人工智能 JavaScript Ubuntu
5分钟上手龙虾AI!OpenClaw部署(阿里云+本地)+ 免费多模型配置保姆级教程(MiniMax、Claude、阿里云百炼)
OpenClaw(昵称“龙虾AI”)作为2026年热门的开源个人AI助手,由PSPDFKit创始人Peter Steinberger开发,核心优势在于“真正执行任务”——不仅能聊天互动,还能自动处理邮件、管理日程、订机票、写代码等,且所有数据本地处理,隐私完全可控。它支持接入MiniMax、Claude、GPT等多类大模型,兼容微信、Telegram、飞书等主流聊天工具,搭配100+可扩展技能,成为兼顾实用性与隐私性的AI工具首选。
1701 6