[算法总结] 关于字符串类型题你应该知道这些?精心汇总!!

简介: [算法总结] 关于字符串类型题你应该知道这些?精心汇总!!

问题描述

最近在练习字符串类型的算法题时候,编程语言内部自带了很多api还有一些实用的方法,在此总结一下用法,方便后面回顾使用。


字符串操作中常用方法

Character类

1.返回的是一个boolean类型的,可以用于去除字符串中非数字和字母的字符

Character.isLetterOrDigit()

2.判断是否是字符

Character.isDigit()

3.判断是否是小写字符

Character.isLowerCase()

4.转换成小写或者大写

Character.toLowerCase()

Character toUpperCase()


HashMap || HashSet

一般题中要求去重的时候,可以使用HashSet,set表中不支持有重复元素

   HashSet<Integer> set = new HashSet<>();
   set.add(1);//添加元素
   System.out.println(set.size()); //长度
   set.remove(1); //删除元素
   System.out.println(set.isEmpty()); // 判断是否是空
    set.clear(); //清除所有元素
    //判断是否包含某个元素 ,布尔类型
    System.out.println(set.contains(1));


一般题中要统计字符出现的次数,可以使用HashMap来统计,支持重复

  HashMap<Character,Integer> map  = new HashMap<>();
    map.put('1',1); //压入元素
    map.get('1');// 提取键值
    //获取键值,默认为0
    map.getOrDefault('1',0);
    System.out.println(map.isEmpty()); //判断是否为空
    System.out.println(map.containsKey('1')); //判断是否含有键
    map.remove('1'); //删除
    map.values(); //显示所有的值
    map.size();
    //获得每一个键和值
    for(Map.Entry<Character,Integer> entry: map.entrySet()){
        int key = entry.getKey(),value = entry.getValue();
    }


验证数字是否超过int类型范围

这类题经常遇到,所以总结一下。以这个例子

 public static void main(String[] args) {
        String a = "12312";
        int result = 0;
        for(int i =0;i<a.length();i++){
            //拿到数字
            int temp = result*10+(a.charAt(i)-'0');
            if(temp/10 != result){
                System.out.println(1);
            }
            result = temp;
        }
    }
相关文章
|
4月前
|
负载均衡 NoSQL 算法
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
这篇文章是关于Java面试中Redis相关问题的笔记,包括Redis事务实现、集群方案、主从复制原理、CAP和BASE理论以及负载均衡算法和类型。
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
|
4月前
|
算法
【算法】滑动窗口——找到字符串中所有字母异位词
【算法】滑动窗口——找到字符串中所有字母异位词
|
2月前
|
算法
两个字符串匹配出最长公共子序列算法
本文介绍了最长公共子序列(LCS)问题的算法实现,通过动态规划方法求解两个字符串的最长公共子序列,并提供了具体的编程实现细节和示例。
89 1
两个字符串匹配出最长公共子序列算法
|
6月前
|
算法
数据结构和算法学习记录——线性表之双向链表(上)-结点类型定义、初始化函数、创建新结点函数、尾插函数、打印函数、尾删函数
数据结构和算法学习记录——线性表之双向链表(上)-结点类型定义、初始化函数、创建新结点函数、尾插函数、打印函数、尾删函数
51 0
|
4月前
|
算法 Java
掌握算法学习之字符串经典用法
文章总结了字符串在算法领域的经典用法,特别是通过双指针法来实现字符串的反转操作,并提供了LeetCode上相关题目的Java代码实现,强调了掌握这些技巧对于提升算法思维的重要性。
|
4月前
|
数据采集 前端开发 算法
基于朴素贝叶斯算法的新闻类型预测,django框架开发,前端bootstrap,有爬虫有数据库
本文介绍了一个基于Django框架和朴素贝叶斯算法开发的新闻类型预测系统,该系统具备用户登录注册、后台管理、数据展示、新闻分类分布分析、新闻数量排名和新闻标题预测等功能,旨在提高新闻处理效率和个性化推荐服务。
|
5月前
|
自然语言处理 算法 搜索推荐
字符串相似度算法完全指南:编辑、令牌与序列三类算法的全面解析与深入分析
在自然语言处理领域,人们经常需要比较字符串,这些字符串可能是单词、句子、段落甚至是整个文档。如何快速判断两个单词或句子是否相似,或者相似度是好还是差。这类似于我们使用手机打错一个词,但手机会建议正确的词来修正它,那么这种如何判断字符串相似度呢?本文将详细介绍这个问题。
283 1
|
5月前
|
数据采集 算法 JavaScript
揭开JavaScript字符串搜索的秘密:indexOf、includes与KMP算法
JavaScript字符串搜索涵盖`indexOf`、`includes`及KMP算法。`indexOf`返回子字符串位置,`includes`检查是否包含子字符串。KMP是高效的搜索算法,尤其适合长模式匹配。示例展示了如何在数据采集(如网页爬虫)中使用这些方法,结合代理IP进行安全搜索。代码示例中,搜索百度新闻结果并检测是否含有特定字符串。学习这些技术能提升编程效率和性能。
124 1
揭开JavaScript字符串搜索的秘密:indexOf、includes与KMP算法
|
4月前
|
算法 C++
惊爆!KPM算法背后的秘密武器:一行代码揭秘字符串最小周期的终极奥义,让你秒变编程界周期大师!
【8月更文挑战第4天】字符串最小周期问题旨在找出字符串中最短重复子串的长度。KPM(实为KMP,Knuth-Morris-Pratt)算法,虽主要用于字符串匹配,但其生成的前缀函数(next数组)也可用于求解最小周期。核心思想是构建LPS数组,记录模式串中每个位置的最长相等前后缀长度。对于长度为n的字符串S,其最小周期T可通过公式ans = n - LPS[n-1]求得。通过分析周期字符串的特性,可证明该方法的有效性。提供的C++示例代码展示了如何计算给定字符串的最小周期,体现了KPM算法在解决此类问题上的高效性。
87 0
|
6月前
|
存储 机器学习/深度学习 算法
使用决策树算法预测隐形眼镜类型
使用决策树算法预测隐形眼镜类型
44 2