LeetCode(五)
2021/9/1 6:08:10
本文主要是介绍LeetCode(五),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
-
-
package com.model.string; import org.omg.PortableInterceptor.INACTIVE; import java.util.HashMap; /** * @Description:测试类 * @Author: 张紫韩 * @Crete 2021/8/31 23:11 * 给你两个字符串,找到同源异构字符串 * acbd 和abc 即 acb为abc的同源异构字符串 */ public class StringDemo01 { public static void main(String[] args) { String str1="fasdfsdabcdefg"; String str2="bca"; System.out.println(getIndex(str1, str2)); System.out.println(getIndex2(str1, str2)); } // 窗口移动+记账法 public static int getIndex2(String str1,String str2){ if (str1.length()<str2.length()||str2.length()==0){ return -1; } int[] table=new int[256]; // 无效还款数 int invalid=0; // 形成账单 for (int i = 0; i < str2.length(); i++) { table[str2.charAt(i)]++; } // 先行成第一个窗口 for (int i = 0; i < str2.length(); i++) { if (table[str1.charAt(i)]==0){ invalid++; } table[str1.charAt(i)]--; } if (invalid==0){ return 0; } for (int i = 0;i < str1.length()-str2.length()+1; i++) { // 判断是否已经全部还款,且无效还款为0 if (invalid==0){ return i; } // 滑动窗口 if (table[str1.charAt(i)]++<0){ invalid--; } if (table[str1.charAt(i+str2.length())]--==0){ invalid++; } } return -1; } //普通方法,列举出所有的和str2一样长的字串进行比对 public static int getIndex(String str1,String str2){ for (int i = 0; i < str1.length()-str2.length()+1; i++) { if (isTY(str1.substring(i, i+str2.length()), str2)){ return i; } } return -1; } // 判断两个字符串是否是同源字符串 public static boolean isTY(String str1,String str2){ int[] table=new int[256]; for (int i = 0; i < str2.length(); i++) { table[str2.charAt(i)]++; } for (int i = 0; i < str1.length(); i++) { if (table[str1.charAt(i)]==0){ return false; } table[str1.charAt(i)]--; } return true; } }
-
-
-
这篇关于LeetCode(五)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-09CMS内容管理系统是什么?如何选择适合你的平台?
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南
- 2025-01-03图像文字理解,OCR、大模型还是多模态模型?PalliGema2在QLoRA技术上的微调与应用
- 2025-01-03混合搜索:用LanceDB实现语义和关键词结合的搜索技术(应用于实际项目)