!郑重提示!!!!!!!:

正在学编程、算法的同学请千万不要依赖此插件,否则你可能甚至无法手写出一个for循环

AI帮我写代码?我帮AI写代码?庄周梦蝶?蝶梦庄周?十分梦幻。

copilot在VScode和IDEA上都有,我们先在VScode上演示一下,然后告诉大家如何安装使用。

今天早上突然收到邮件通知我获得了使用copilot预览版的权限,是的,使用这个插件需要申请,不过流程很快,待会细说,先来看看效果(这个插件直接下巴都给我震碎了)

Copilot效果演示:

那我们使用这个插件来实现一下求两个字符串的最长公共子串长度试一下:



我仅仅写了一个函数名。。。就已经给我写完了?但是我想换一种写法,看看他能提供什么样的帮助:

  1. 首先,若两个字符串有一个为null,那么直接返回0:



    我刚敲了个if....

  2. 若两字符串不为null,但有一个长度为0,则返回0:

  3. 设置一个boolean数组dp,dp[i][j]: str1[i]==str2[j],设置一个maxStart表示最长公共子串的起始下标,maxLen表示最长公共子串的长度:



    彩蛋:它好像懂了我的代码想要干什么。。并且尝试帮我生成注释:

  4. 那好吧,我们依据copilot读懂得我的思路,来写一个for循环:

    这次我们试试写注释,让它帮我直接生成代码:



    for循环里面的业务应该是写错了,因为dp不需要通过递推实现。

    我们自己实现一下,通过另外一个变量k,来寻找最长的斜线:

真厉害。。稍加提示立马就知道我要干什么。。。这确实是我设想的实现代码。。

  1. 最后返回值

    如果是只要求最长长度的话,直接return maxLen即可,而如果是要求最长子串,那么。。

我服了。。它太懂我了

但是应该还是需要更正优化一下,在while循环中,应当加上

	&&!dp[i + k][j + k]!

这个条件,否则在遍历时会重复判断重复累加k。

代码放这了,因为这个代码跟我之前自己写得简直一模一样,我就不测试了,大家如果有疑问可以拿去测试一下

点击查看代码
	public String longestCommonSubstring(String str1, String str2){
if(str1==null||str2==null) return null;
int n=str1.length();
int m=str2.length();
if(n==0||m==0) return null;
boolean [][] dp=new boolean[n][m];
int maxStart=0, maxLen=0;
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
int k=0;
while(i+k<m&&j+k<n&&str1.charAt(j+k)==str2.charAt(i+k)&&!dp[i + k][j + k]){
dp[j][i]=true;
k++;
}
if(k>maxLen){
maxLen=k;
maxStart=i;
}
}
}
return str2.substring(maxStart, maxStart+maxLen);
}

更新

它居然在帮我生成测试用例:

Copilot的安装使用:以VScode为例

首先在插件商店中安装这个插件,然后它会要求你登录github,按照要求登录即可,之后它会告诉你没有权限使用copilot,因此需要去申请,申请完之后会进入wait list,大概等个两三天之后,就会收到邮件,就可以愉快地手撕代码了

这里是官方getting start文档:

https://github.com/github/copilot-docs/blob/main/docs/visualstudiocode/gettingstarted.md#getting-started-with-github-copilot-in-visual-studio-code

AI写代码! 神器copilot介绍+安装+使用的更多相关文章

  1. 让 AI 为你写代码 - 体验 Github Copilot

    前几天在群里看到有大神分享 Copoilot AI 写代码,看了几个截图有点不敢相信自己的眼睛.今天赶紧自己也来体验一下 Copoilot AI 写代码到底有多神奇. 申请 现在 Copoilot 还 ...

  2. win10安装PS和AI后报代码为16的错误解决方法

    win10安装PS和AI后报代码为16的错误解决方法 一.总结 一句话总结:修改兼容性和以管理员方式运行就可以了 修改兼容性 以管理员身份运行 二.PS和AI安装后报代码为16的错误解决方法介绍(转) ...

  3. Idea没安装几款好用的插件,怎么风骚的写代码???

    ​ 工欲善其事,必先利其器,好的工具可以提升我们的开发效率,越来越多的Java程序员从Eclipse转到了Jetbrains家的Idea.今天给大家介绍的是我常用的十几款Idea必装的插件. ​ Ti ...

  4. 有个AI陪你一起写代码,是种怎样的体验?| 附ICLR论文

    从前,任何程序的任何功能,都需要一行一行敲出来. 后来,程序猿要写的代码越来越多,世界上便有了各种各样的API,来减少大家的工作量.有些功能,可以让API来帮我们实现. 不过,人类写下的话,API并不 ...

  5. 不用写代码的框架 - RobotFramework+Eclispe环境安装篇

    环境安装是学习任何一个新东西的第一步,这一步没走舒坦,那后面就没有心情走下去了. 引用名句:工欲善其事必先利其器!! Robotframework:一款 自动化测试框架. Eclipse:一款编辑工具 ...

  6. Red Gate系列之五 .NET Reflector 7.6.1.824 Edition .NET程序反编译神器(附插件安装教程2012-10-13更新) 完全破解+使用教程

    原文:Red Gate系列之五 .NET Reflector 7.6.1.824 Edition .NET程序反编译神器(附插件安装教程2012-10-13更新) 完全破解+使用教程 Red Gate ...

  7. Centos + docker,Ubuntu + docker介绍安装及详细使用

    docker笔记 常用命令 设置docker开机自启:sudo chkconfig docker on 查所有镜像: docker images 删除某个镜像:docker rmi CONTAINER ...

  8. 王炸!!IDEA 2021.1 推出语音、视频功能,边写代码边聊天,我真的服了…

    IDEA 2020.3 刚没用多久,2021.1 又陆续给我推送更新了: 启动就提醒更新,麻烦,那不如更新下,体验下新版本. 如上图所示,2021.1 更新了 9 个新特性,下面栈长会一一体验给大家介 ...

  9. 浏览器上写代码,4核8G微软服务器免费用,Codespaces真香

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 一图胜千言 先上图,下面是欣宸在自己的iPad Pro ...

随机推荐

  1. [AcWing 32] 调整数组顺序使奇数位于偶数前面

    点击查看代码 class Solution { public: void reOrderArray(vector<int> &array) { int i = 0, j = arr ...

  2. 论文解读(Graphormer)《Do Transformers Really Perform Bad for Graph Representation?》

    论文信息 论文标题:Do Transformers Really Perform Bad for Graph Representation?论文作者:Chengxuan Ying, Tianle Ca ...

  3. react实战系列 —— 我的仪表盘(bizcharts、antd、moment)

    其他章节请看: react实战 系列 My Dashboard 上一篇我们在 spug 项目中模仿"任务计划"模块实现一个类似的一级导航页面("My任务计划") ...

  4. 一文说透 MySQL JSON 数据类型(收藏)

    JSON 数据类型是 MySQL 5.7.8 开始支持的.在此之前,只能通过字符类型(CHAR,VARCHAR 或 TEXT )来保存 JSON 文档. 相对字符类型,原生的 JSON 类型具有以下优 ...

  5. 老生常谈系列之Aop--CGLIB动态代理的底层实现原理

    老生常谈系列之Aop--CGLIB动态代理的底层实现原理 前言 上一篇老生常谈系列之Aop--JDK动态代理的底层实现原理简单讲解了JDK动态代理的实现,动态代理常用实现里面的双子星还有另一位--CG ...

  6. css的flex布局调试

    学习经验-css的flex布局 今天遇到一个小问题 在给三个div布局时,设置父元素display:flex 此时三个div的宽度均为50%,他们并没有超出屏幕的宽度,还是撑满了父元素. 为什么呢? ...

  7. JS 异步与 Promise

    JS 异步与 Promise 本文写于 2020 年 6 月 8 日 1. 同步与异步与回调函数 Promise 现在是前端面试必考题呀,但是先不急着看 Promise,我们首先来看看什么是异步. - ...

  8. 【Java8新特性】Optional 类

    概述 Optional 类是一个可以为null的容器对象.如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象. Optional 是个容器:它可以保存类型T的值,或者 ...

  9. 数仓选型必列入考虑的OLAP列式数据库ClickHouse(中)

    实战 案例使用 背景 ELK作为老一代日志分析技术栈非常成熟,可以说是最为流行的大数据日志和搜索解决方案:主要设计组件及架构如下: 而新一代日志监控选型如ClickHouse.StarRocks特别是 ...

  10. Web 前端实战(三):雷达图

    前言 在<Canvas 线性图形(五):多边形>实现了绘制多边形的函数.本篇文章将记录如何绘制雷达图.最终实现的效果是这样的: 绘制雷达图 雷达图里外层 如动图中所示,雷达图从里到外一共有 ...