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

正在学编程、算法的同学请千万不要依赖此插件,否则你可能甚至无法手写出一个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. Bugku练习题---MISC---FileStoragedat

    Bugku练习题---MISC---FileStoragedat flag:bugku{WeChatwithSteg0} 解题步骤: 1.观察题目,下载附件 2.下载后发现是一个后缀名为.dat的文件 ...

  2. [AcWing 68] 0到n-1中缺失的数字

    点击查看代码 class Solution { public: int getMissingNumber(vector<int>& nums) { if (nums.empty() ...

  3. 【CSAPP】Bomb Lab实验笔记

    bomblab这节搞的是二进制拆弹,可以通俗理解为利用反汇编知识找出程序的六个解锁密码. 早就听闻BOMBLAB的大名,再加上我一直觉得反汇编是个很艰难的工作,开工前我做好了打BOSS心理准备.实际上 ...

  4. socket编程实现tcp服务器_C/C++

    1. 需求分析 实现一个回声服务器的C/S(客户端client/服务器server)程序,功能为客户端连接到服务器后,发送一串字符串,服务器接受信息后,返回对应字符串的大写形式给客户端显示. 例如: ...

  5. 【面试普通人VS高手系列】讲一下wait和notify这个为什么要在synchronized代码块中?

    一个工作七年的小伙伴,竟然不知道"wait"和"notify"为什么要在Synchronized代码块里面. 好吧,如果屏幕前的你也不知道,请在评论区打上&qu ...

  6. 做SaaS的程序员们,是时候关注企业架构了

    SaaS赛道是一个超大赛道,足够容纳上万家服务商,不太可能有哪个服务商能满足所有场景,大部分SaaS服务商在某个垂直领域,提供差异化的产品和服务.SaaS产品大部分都是面向B端客户,少部分面向C端客户 ...

  7. linux系统平均负载高(load average)

    系统平均负载高(load average) 问题现象 两个案例都是:系统平均负载高,但cpu,内存,磁盘io都正常 什么是系统平均负载 平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进 ...

  8. 【面试普通人VS高手】Spring 中Bean的作用域有哪些?

    一个工作3年的小伙子,去面试被问到Spring里面的问题. 这个问题比较简单,但是他却没有回答上来. 虽然他可以通过搜索引擎找到答案,但是如果没有理解,下次面试还是不会! 这个面试题是: " ...

  9. GIL与普通互斥锁区别,死锁现象,信号量,event事件,进程池与线程池,协程

    GIL与普通互斥锁区别 GIL锁和互斥锁的异同点 相同: 都是为了解决解释器中多个线程资源竞争的问题 异: 1.互斥锁是Python代码层面的锁,解决Python程序中多线程共享资源的问题(线程数据共 ...

  10. Java中的线程到底有哪些安全策略

    摘要:Java中的线程到底有哪些安全策略呢?本文就为你彻底分析下! 本文分享自华为云社区<[高并发]线程安全策略>,作者:冰 河 . 一.不可变对象 不可变对象需要满足的条件 (1)对象创 ...