导入模块1.jieba的安装与使用pipinstalljiebacondainstall-cconda-forgejiebaPython2.X版全自动安装:easy_installjieba 或者 pipinstalljieba半自动安装:先下载http://pypi.python.org/pypi/jieba/ ,解压后运行pythonsetup.pyinstall手动安装:将jieba目录放置于当前目录或者site-packages目录通过importjieba来引用Python3.X版目前master分支是只支持Python2.x的Python3.x版本的分支也已经基本可用: https
前景: 在Python中处理文本数据是一种常见的任务,这需要使用到多种字符串操作和数据结构。本文将详细解读如何调用jieba、wordcloud以及matplotlib这些库进行文本处理分析与词云制作。在pycharm中下载并安装库 在我们导入所需要的库之前我们需要先在pycharm中下载并安装库,步骤如下:在PyCharm的顶部的菜单中选择"File"(文件)->"Settings"(设计)(在Mac上是"PyCharm"->"Preferences")。在设置窗口中,选择"Project:[YourProjectName]"->"PythonInterpre
第二十三章两个字符串的最小ASCLL删除和最长重复子数组两个字符串的最小ASCLL删除和力扣链接求删除字符的ASCLL和的最小值⇒正难则反⇒求公共子序列的ASCLL和的最大值两个数组的dp问题⇒分区间讨论⇒dp[i][j]--nums1数组的[0,i]区间和nums2数组的[0,j]区间,公共子序列的ASCLL和的最大值转态转移方程—根据最后一个位置进行讨论遍历顺序初始化需要使用左上角的情况⇒dp表可以多开一行,多开一列但是dp表中使用原nums1和nums2的情况就会出现偏差,解决方法访问nums1和nums2里面的情况,就要-1可以在nums1,nums2前面添加一个空格⇒使得dp表中的下
第十八章最长斐波那契子序列的长度最长等差数列等差序列划分II-子序列最长斐波那契子序列的长度力扣链接子序列⇒dp[i]——以arr[i]结尾的所有子序列中,斐波那契子序列的最长长度子序列⇒状态转移方程——根据最后一个位置的组成来划分初始化——根据状态转移方程,全都初始化为2遍历顺序——根据状态转移方程,从前往后返回结果——返回dp表中的最大值,记作res;如果res3,那就返回resclassSolution{public:intlenLongestFibSubseq(vectorint>&arr){intn=arr.size();//建表+初始化vectorvectorint>>dp(n,v
第二十章最长回文子序列让字符串成为回文串的最少插入次数最长回文子序列力扣链接单个数组讨论子序列⇒dp[i]--以nums[i]为结尾的所有子序列中,回文子序列的最长长度.然后讨论最后一个位置的归属情况但又要满足回文结构⇒二维dp⇒dp[i][j]--区间[i,j]内,回文子序列的最长长度状态转移方程遍历顺序初始化都初始化为0⇒不做初始化返回值–返回dp[0][n-1]classSolution{public:intlongestPalindromeSubseq(strings){intn=s.size();vectorvectorint>>dp(n,vectorint>(n));for(int
第二十一章最长公共子序列不相交的线最长公共子序列力扣链接单个数组的子序列问题–dp[i]--以nums[i]为结尾的所有子序列中,xxxxxx.然后状态转移方程根据最后一个位置的归属问题进行讨论两个数组的子序列问题–以小见大,分别分析nums1中的一个区间和nums2的一个区间进行讨-->dp[i][j]--nums1中的[0,i]区间以及nums2中的[0,j]区间内的所有子序列的组合中,公共子序列的最大长度状态转移方程–最后一个位置的具体情况遍历顺序初始化需要使用左上角的情况⇒dp表可以多开一行,多开一列但是dp表中使用原nums1和nums2的情况就会出现偏差,解决方法访问nums1和n
第十五章最长湍流子数组环绕字符串中唯⼀的⼦字符串最长湍流子数组力扣链接子数组⇒dp[i]的含义:以arr[i]结尾的所有子数组中的最长湍流子数组的长度子数组⇒状态转移方程根据最后一个位置来划分👇👇👇初始化:都初始化为1⇒1.一个数字也是一个湍流子数组.2.可以少考虑四种状态遍历方向:从前往后遍历返回结果:返回g表和f表中的最大值classSolution{public:intmaxTurbulenceSize(vectorint>&arr){intn=arr.size(); //建表+初始化vectorint>f(n,1),g(n,1);intres=1;for(inti=1;in;i++)
第十四章拆分单词乘积为正数的最长子数组长度拆分单词力扣链接常见的子数组问题⇒要使用动态规划的解法那么要确定dp数组的含义⇒do[i]——以s[i]结尾的子数组可不可以用wordDict中的字符串来表示那么问题来了,如何判断字符串[j,i]在没在wordDict中呢?我们可以用一个哈希表.将wordDict导入一个哈希表中,count判读一个字符是否在哈希表中出现遍历方向——从前到后初始化——由于出现了j-1,那么我们可以让dp数组多开一个位置⇒利于我们初始化,由于都是从第一个位置往后推导dp状态的,那么dp[0]就初始化为trueclassSolution{public:boolwordBre
#导入库fromwordcloudimportWordCloudfromimageioimportimreadimportjieba#fromcollectionsimportCounter#读入txt文本数据text=open(r'C:\Users\15423\Desktop\词云制作\threekingdoms.txt',"r",encoding='utf-8').read()#结巴中文分词,生成字符串,默认精确模式,如果不通过分词,无法直接生成正确的中文词云cut_text=jieba.lcut(text)#去掉不重要的词removes=[',','。','"',':','曰','将军'
第十一章有效的字母异位词题目理解代码两数之和题目理解(暴力篇)代码题目理解(哈希篇)代码有效的字母异位词力扣链接给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词注意:若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词示例1:输入:s=“anagram”,t=“nagaram”输出:true示例2:输入:s=“rat”,t=“car”输出:false提示:1s和t仅包含小写字母题目理解因为题目的要求是:两个数组仅仅包含小写字母⇒一共才26个英语字母两个数组的大小是1⇒我们可以采用哈希的思想我们可以用一个数组(利用下标)来记录两个数组中每个字母出现的次数然后通过比较每个字母