java变位词_GoLang 字符串变位词
GoLang 实现
func solution(s , t string)bool{
if s == t {
return true
}
length := len(s)
if length != len(t) {
return false
}
//' ' 32 --> ~ 126
const MAX_ASCII int= 94
const SPACE_INDEX rune = 32
numbers := [MAX_ASCII]int{}
sRune := []rune(s)
tRune :=[]rune(t)
for i := 0 ; i < length ; i++ {
index := tRune[i] - SPACE_INDEX
numbers[index]++
index = sRune[i] - SPACE_INDEX
numbers[index]--
}
for i := 0 ; i < MAX_ASCII / 2 ; i++{
mergeSize := numbers[i]
if mergeSize != 0 || mergeSize != numbers[MAX_ASCII - 1 - i]{
return false
}
}
return true
}
其中关键点1 :
定义保存最后判断两个字符串是否相同的 长度的取值:
根据ASCII 表可以知道:
第一个单字符 ' ' 的10 进制值位32 , 最后一个单字符 '~' 10进制值位 126 , 得到之间的差值为 94 ,
这里预测每个字符都被使用到了, 所以长度直接定义为 94了.
Java 实现 和上面类似:
public boolean anagram(String s, String t) {
if (s == null || t == null || s.length() ==0 || s.length() != t.length()){
return false;
}
if (s.equals(t))return true;
final int MAX_ASCII = 94;
final char SPACE_INDEX = ' ';
int[] numbers = new int[MAX_ASCII];
int length = s.length();
char[] sCharArray = s.toCharArray();
char[] tCharArray = t.toCharArray();
for(int i = 0 ; i< length ; i++){
int index = sCharArray[i] - SPACE_INDEX;
numbers[index]++;
index = tCharArray[i] - SPACE_INDEX;
numbers[index]--;
}
for (int i =0 ; i < MAX_ASCII / 2 ; i++ ) {
int mergeSize = numbers[i];
if ( mergeSize != 0 || mergeSize != numbers[MAX_ASCII - 1 - i]){
return false;
}
}
return true;
}
欢迎加入学习交流群569772982,大家一起学习交流。
java变位词_GoLang 字符串变位词相关推荐
- java使用DFA算法实现敏感词过滤
Java使用DFA算法实现敏感词过滤 DFA,全称 Deterministic Finite Automaton 即确定有穷自动机. 其特征为:有一个有限状态集合和一些从一个状态通向另一个状态的边,每 ...
- Java练习 基于数组的敏感词过滤/用户注册合法性判定
用户注册 在注册时通常要验证用户名和密码是否合法,运用学习过的知识完成如下操作: 用户名长度大于等于6位 密码长度大于等于8位,必须包含英文字母以及数字 以上两个条件同时成立注册才能成功. packa ...
- java敏感词屏蔽器,“敏感词过滤”功能设置
"敏感词过滤"功能设置 "敏感词过滤"是指对互联网发布的言论和文章中含有的敏感词进行过滤.敏感词经过在互联网的传播和扩散会影响社会的稳定和用户的使用.云锁的&q ...
- java abc 979899_商品标题由关键词组成,关键词主要包括核心词、类目词、属性词以及长尾词四种类型。其中属性词是指...
商品标题由关键词组成,关键词主要包括核心词.类目词.属性词以及长尾词四种类型.其中属性词是指 答:商品属性 网签备案具有创设权利的功能,能产生物权变动的效力. 答:错 下列程序执行后输出的结果是\nx ...
- java密码框转字符串_实现汉字的凯撒密码(内容包括:去掉字符串中的转义字符、汉字的unicode转换)...
实验内容: 选择合适的秘钥,利用上述三个算法:熟悉恺撒密码.双重置换密码.一次一密密码算法.加密如下明文: 大风起兮云飞扬, 威加海内兮归故乡, 安得猛士兮守四方. <大风歌>--刘邦 3 ...
- Thinking in java 第13章 字符串 笔记+习题
Thinking in java 第13章 字符串 学习目录 13.1 不可变String 13.2 重载"+"与StringBuilder 1. 用于String的"+ ...
- python 10行代码生成词云图片(基础词云、形状词云)
一.词云简介 词云,也称为文本云或标签云.在词云图片中,关键词在文本中出现的次数越多,则表示该词越重要,其在词云中所占面积区域也越大,出现次数越少,所占面积越小.词云可任意更换背景为白色的图形以改变词 ...
- tf-idf词向量和bow_使用词袋Bow和TF IDF进行多标签分类
tf-idf词向量和bow 1.加载数据 (1. Load the data) For this study, we are using Kaggle data for Toxic Comment C ...
- Java计算两个字符串日期之间的天数差
Java计算两个字符串日期之间的天数差 调用方法: public static void main(String[] args) throws ParseException {String a = & ...
最新文章
- 构建可扩展的GPU加速应用程序(NVIDIA HPC)
- RedHat、CentOS设置静态IP、主机名、关闭防火墙(虚拟机VMware客户机)
- Feature Schema中Module和File节点属性含义的解释
- 09.multi-get api操作
- (七) shiro 加密与解密
- 论文浅尝 - ACL2020 | Segmented Embedding of Knowledge Graphs
- JavaScript-变量的作用域 、const、let
- linux通过rpm和yum安装包
- 自然语言处理工具HanLP被收录中国大数据产业发展的创新技术新书《数据之翼》...
- Linux文件系统下的分区和挂载
- 代码管理学:如何给新员工安排工作
- [android界面]android中src和background区别——前景与背景
- 网络编程知识点复习(第一次)
- 点名软件—使用二项分布实现点名均匀分布
- 使用CyberController来将旧手机改造成电脑外挂------手机交互翻译、人脸解锁、语音识别....各个功能等你来探索
- K8S-四层负载均衡-Service解读
- latex脚注标号混合数字和特殊字符
- 基于soot的过程内数据流分析
- 电脑搜索不出网络共享文件夹内容
- 题解1211判断元素是否存在
热门文章
- echarts 浏览器兼容性_谷歌浏览器不再使用quot;黑名单quot; / iPhone可能放弃lightning充电口//微软中国被列为被执行人/QQ 音乐上线...
- 中国科学院大学庆生 一颗小行星以“国科大”命名
- 数学结果告诉你足球的赛程安排并不能做到完全公平
- 大数据到底有多大,人工智能到底有多能
- mac 上传ftp服务器文件夹权限,mac 访问 ftp服务器文件夹权限
- python中的return和print的区别_python中return和print的区别(详细)
- DataFrame不同风格比较
- java字典树(Trie)实现中文模糊匹配
- HDU3534 给你一个树让你找出其中最长路径以及个数数
- io_uring vs epoll ,谁在网络编程领域更胜一筹?