首页 > 其他分享 >字符串和哈希表的基本用法总结

字符串和哈希表的基本用法总结

时间:2024-01-08 14:06:57浏览次数:25  
标签:map String int 用法 键值 哈希 字符串 World


2287. 重排字符形成目标字符串

解决代码

class Solution {
    public int rearrangeCharacters(String s, String target) {
        Map<Character, Integer> sCounts = new HashMap<Character, Integer>();
        Map<Character, Integer> targetCounts = new HashMap<Character, Integer>();
        int n = s.length(), m = target.length();
        for (int i = 0; i < m; i++) {
            char c = target.charAt(i);
            targetCounts.put(c, targetCounts.getOrDefault(c, 0) + 1);
        }
        for (int i = 0; i < n; i++) {
            char c = s.charAt(i);
            if (targetCounts.containsKey(c)) {
                sCounts.put(c, sCounts.getOrDefault(c, 0) + 1);
            }
        }
        int ans = Integer.MAX_VALUE;
        for (Map.Entry<Character, Integer> entry : targetCounts.entrySet()) {
            char c = entry.getKey();
            int count = entry.getValue();
            int totalCount = sCounts.containsKey(c) ? sCounts.get(c) : 0;
            ans = Math.min(ans, totalCount / count);
            if (ans == 0) {
                return 0;
            }
        }
        return ans;
    }
}

使用的是hash表解决,我发现使用HashMap真的很频繁

  1. 添加元素
Map<KeyType, ValueType> map = new HashMap<>();

// 添加键为 key,值为 value 的键值对
map.put(key, value);
  1. 获取元素
// 根据键获取对应的值
ValueType value = map.get(key);
  1. 删除元素
// 根据键删除对应的键值对
ValueType removedValue = map.remove(key);

// 清空所有的键值对
map.clear();
  1. 判断是否包含键或值
// 判断是否包含指定的键
boolean containsKey = map.containsKey(key);

// 判断是否包含指定的值
boolean containsValue = map.containsValue(value);
  1. 获取键或值的集合视图
// 获取所有键的集合
Set<KeyType> keys = map.keySet();

// 获取所有值的集合
Collection<ValueType> values = map.values();
  1. 遍历键值对
// 遍历所有的键值对
for (Map.Entry<KeyType, ValueType> entry : map.entrySet()) {
    KeyType key = entry.getKey();
    ValueType value = entry.getValue();
    // 对键值对进行操作
}
  1. 获取键值对的数量
int size = map.size();

字符串

  1. 创建字符串对象

可以使用字符串字面量或使用new关键字来创建字符串对象。字符串字面量是用双引号括起来的字符序列,例如:“Hello World”。使用字符串字面量创建字符串对象时,Java自动将其转换为一个String对象。例如,以下代码创建了一个字符串对象s1:

String s1 = "Hello World";

也可以使用new关键字显式地创建字符串对象,例如:

String s2 = new String("Hello World");
  1. 字符串连接

可以使用+操作符来连接两个字符串,例如:

String s3 = "Hello";
String s4 = "World";
String s5 = s3 + s4; //"HelloWorld"

还可以使用concat()方法连接两个字符串,例如:

String s6 = s3.concat(s4); //"HelloWorld"
  1. 获取字符串长度

可以使用length()方法获取字符串的长度,例如:

String s7 = "HelloWorld";
int len = s7.length(); //10
  1. 获取子字符串

可以使用substring()方法获取一个字符串的子串,例如:

String s8 = "HelloWorld";
String s9 = s8.substring(0, 5); //"Hello"
  1. 查找子字符串

可以使用indexOf()方法查找一个字符串中某个子字符串的位置,例如:

String s10 = "HelloWorld";
int index = s10.indexOf("World"); //5
  1. 替换子字符串

可以使用replace()方法替换一个字符串中某个子字符串,例如:

String s11 = "Hello World";
String s12 = s11.replace("World", "Java"); //"Hello Java"

这些是Java中常见的字符串操作,此外还有很多其他的字符串操作方法,可以查看Java API文档了解更多详情。


标签:map,String,int,用法,键值,哈希,字符串,World
From: https://blog.51cto.com/u_16426526/9143897

相关文章

  • Trie字符串统计题解
    维护一个字符串集合,支持两种操作:"Ix"向集合中插入一个字符串x;"Q×"询问一个字符串在集合中出现了多少次。共有N个操作,输入的字符串总长度不超过105,字符串仅包含小写英文字母。输入格式第一行包含整数N,表示操作数。接下来N行,每行包含一个操作指令,指令为"l×"或"Q×"中的一种。......
  • java后台字符串URLencode、URLdecode及Base64加解密转换
    一、URLencode、URLdecode//将application/x-www-from-urlencoded字符串转换成普通字符串StringkeyWord=URLDecoder.decode("%E4%BD%A0%E5%A5%BD","utf-8");System.out.println(keyWord);//输出你好//将普通字符创转换成application/x-www......
  • python 使用多个界定符分割字符串
    问题你需要将一个字符串分割为多个字段,但是分隔符(还有周围的空格)并不是固定的。解决方案string对象的split()方法只适应于非常简单的字符串分割情形,它并不允许有多个分隔符或者是分隔符周围不确定的空格。当你需要更加灵活的切割字符串的时候,最好使用re.split()方法......
  • • python 脚本 输入字符串 输出字符串+当前时间 生成api http请求
    案例问题背景python脚本输入字符串输出字符串+当前时间生成apihttp请求脚本1这是单线程的单次处理单个http请求同时多个请求按照顺序处理而不是并行处理多请求!=多线程但是相关使用多线程来并行处理多请求使用flask或django等web服务器框架可以与wsgi服务器配合使用比如guni......
  • 字符串、字符“+”
    字符串“+”字符“+”字符串只有“+”操作......
  • PHP的array_column()函数用法详解
    在PHP中,经常需要对数组进行处理和操作。有时候,需要从一个多维数组中获取特定的一列数据,这时候就可以使用array_column()函数来实现。本文将详细介绍array_column()函数的用法。一、什么是array_column()函数array_column()是一个PHP函数,用于从一个多维数组中获取指定的一列数据。该......
  • 网络攻防技术——哈希碰撞
    实验3:MD5碰撞试验实验内容:本次实验主要是加深大家对MD5碰撞及其原理的理解,使用SEED实验环境中的工具及编程语言,完成以下任务:使用md5collgen生成两个MD5值相同的文件,并利用bless十六进制编辑器查看输出的两个文件,描述你观察到的情况;参考Lab3_task2.c的代码,生成两个MD5值相同但......
  • Python中如何进行字符串计数?
    在Python中,字符串计数是非常基本的操作,使用率极高,可用于多种情况,更是每个Python开发工程师必须掌握的基础技能之一,那么Python中如何进行字符串计数?以下是常用方法介绍。1、使用count()方法Python中的字符串类型具有count()方法,该方法可以返回特定子字符串在字符串中出......
  • Python 字符串与十六进制字符串相互转换
    Python字符串与十六进制字符串相互转换在编程中,有时候我们需要将字符串与十六进制字符串之间进行转换。下面我们将展示如何使用Python实现这两个功能。1.将字符串转换为十六进制字符串我们可以创建一个函数ascii_to_hex_string来实现这个功能。该函数将输入的字符串转换为对......
  • 每日一题:给定一个字符串s,请你找出其中不含有重复字符得最长子串的长度
    每日一题:给定一个字符串s,请你找出其中不含有重复字符得最长子串的长度functiongetLongSubstring(s){letmap=newMap();letmax=0;letleft=0;for(leti=0;i<s.length;i++){if(map.has(s[i])&&map.get(s[i])>=left){left=map.get(s[i])+1;......