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,大家一起学习交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513380.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CENTOS 7 踢用户_CentOS服务器及MySQL数据库性能测试-乐搏软件测试

这期小编和大家分享使用Sysbench&#xff0c;进行CentOS服务器及MySQL数据库的性能测试。Sysbench是一个跨平台的基准测试工具。基准测试是对数据库的性能指标进行定量的、可复现的、可对比的测试。基准测试可以理解为针对系统的一种压力测试。但基准测试不关心业务逻辑更加简单…

何朝曦:构建云化安全能力的三个建议

11月12日&#xff0c;深信服智安全创新峰会在云端拉开帷幕&#xff0c;深信服创始人&CEO何朝曦在《构建云化时代的安全能力》主题演讲中指出&#xff0c;业务云化已成为用户实现数字化转型与变革的重要方式&#xff0c;这种跨时代的变迁对用户的安全能力提出了更高的要求&a…

dubbo-go v3 版本 go module 踩坑记

简介&#xff1a; 该问题源于我们想对 dubbo-go 的 module path 做一次变更&#xff0c;使用 dubbo.apache.org/dubbo-go/v3 替换之前的 github.com/apache/dubbo-go。 作者 | 董剑辉、盛傲飞 来源 | 阿里巴巴云原生公众号 ​ 问题背景 ​ 该问题源于我们想对 dubbo-go 的 mo…

python 独热码_Python机器学习之独热编码(一)

在机器学习算法中&#xff0c;常会遇到分类特征是离散的&#xff0c;无序的。例如&#xff1a;性别有男、女&#xff0c;城市有北京&#xff0c;上海&#xff0c;深圳等。性别特征&#xff1a;["男"&#xff0c;"女"] > 0&#xff0c;1地区特征&#xf…

php 怎么解析文本,PHP解析自定义纯文本数据库

我有一个文本文件,存储有关不同项目的信息.该文件是结构化的.文件中的每个项目都由大括号{}分隔,并以逗号开头.每个项目都有其拥有的属性列表,并且属性可以存在或不存在.如果不存在,服务器将假定它们为“默认”.每个条目都用大括号括起来,并以逗号结尾&#xff1a;{},该文件还包…

智能数据构建与管理平台Dataphin的前世今生:缘起

简介&#xff1a; 阿里巴巴提出的OneData方法论帮助企业捋清了数据全生命周期的管理思路&#xff0c;更将其植入到产品Dataphin&#xff08;智能数据构建与管理&#xff09;中&#xff0c;通过阿里云为企业提供服务。 Dataphin 智能数据构建与管理平台 面向各行各业大数据建设、…

缓存和数据库一致性问题,看这篇就够了

作者 | Magic Kaito来源 | 水滴与银弹如何保证缓存和数据库一致性&#xff0c;这是一个老生常谈的话题了。但很多人对这个问题&#xff0c;依旧有很多疑惑&#xff1a;到底是更新缓存还是删缓存&#xff1f;到底选择先更新数据库&#xff0c;再删除缓存&#xff0c;还是先删除缓…

并联串联混合的电压和电流_高考物理常考实验之电流表改装电压表怎么串联电阻...

​高中物理学习问题与王尚老师答疑​电流表改装电压表怎么串联电阻【问&#xff1a;电流表改装电压表怎么串联电阻&#xff1f;】王尚老师&#xff1a;基本理论是欧姆定律&#xff0c;我举个例子来说这个问题吧。如果是0.3A量程的电流表&#xff0c;改装为最大量程15V的电压表&…

走近Quick Audience,了解消费者运营产品的发展和演变

简介&#xff1a; Quick Audience产品是一款云原生面向消费者的营销产品&#xff0c;自诞生以来&#xff0c;经历了三个发展阶段。每个阶段的转变&#xff0c;都与互联网环境和消费者行为的变迁有着极大的关联。 Quick Audience是云原生的面向消费者的营销平台&#xff0c;涵盖…

php图形验证码接口,php生成图形验证码

[php]代码库<?php session_start();// main$vcodes ;//generate Number 4srand((double) microtime() * 1000000);for ($i 0; $i < 4; $i) {$vcodes . rand(1, 9);}$_SESSION[eifr_checkvcode] $vcodes;if (function_exists(imagecreate)) {//generate picture valid…

用python做tkinter_Python下用Tkinter进行GUI编程

Python可用的GUI编程的包很多&#xff0c;Tkinter也是其中一个半标准的工具包。作为一个老牌的Python GUI工具包(皮皮书屋里找了本书&#xff0c;竟然是2001年的),它由Tk GUI包装而来。在Windows版里面已经包括了&#xff0c;不用单独下载。用Tkinter实现一个简单的GUI程序,单击…

边缘应用增长 800%,听听 Akamai 边缘部署的经验

作者 | 宋慧出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;全球权威研究机构都在研究边缘计算的发展进程&#xff0c;并一致认为&#xff0c;企业IT的边缘部署正在加速。其中&#xff0c;IDC研究显示&#xff0c;2023年超过50%的企业新增IT基础设施会部署在…

308 permanent redirect怎么解决_赵县308国道一路口发生一起大货车与电动三轮车碰撞事故,电动三轮车驾驶人受伤。...

原标题&#xff1a;赵县308国道一路口发生一起大货车与电动三轮车碰撞事故&#xff0c;电动三轮车驾驶人受伤。2020年11月4日上午&#xff0c;赵县308国道一路口发生一起大货车与电动三轮车碰撞事故&#xff0c;造成电动三轮车驾驶人受伤。大货车驾驶人驾驶一辆重型货车&#x…

一文带你了解企业上云数据分析首选产品Quick BI

简介&#xff1a; 阿里云Quick BI再度入选&#xff0c;并继续成为该领域唯一入选魔力象限的中国企业&#xff0c;文章将为大家详细介绍上云数据分析首选产品 Quick BI的核心能力。 日前,国际权威分析机构Gartner发布2021年商业智能和分析平台魔力象限报告&#xff0c;阿里云Qu…

如何实现事务原子性?PolarDB原子性深度剖析

简介&#xff1a; 在巍峨的数据库大厦体系中&#xff0c;查询优化器和事务体系是两堵重要的承重墙&#xff0c;二者是如此重要以至于整个数据库体系结构设计中大量的数据结构、机制和特性都是围绕着二者搭建起来的。他们一个负责如何更快的查询到数据&#xff0c;更有效的组织起…

Redis 分布式锁没这么简单,网上大多数都有 bug

作者 | 码哥字节来源 | 码哥字节Redis 分布式锁这个话题似乎烂大街了&#xff0c;不管你是面试还是工作&#xff0c;随处可见&#xff0c;为啥还写&#xff1f;因为看过很多文章没有将分布式锁的各种问题讲明白&#xff0c;所以准备写一篇&#xff0c;也当做自己的学习总结。在…

python多线程同步与互斥_python多线程编程(3): 使用互斥锁同步线程

问题的提出上一节的例子中&#xff0c;每个线程互相独立&#xff0c;相互之间没有任何关系。现在假设这样一个例子&#xff1a;有一个全局的计数num&#xff0c;每个线程获取这个全局的计数&#xff0c;根据num进行一些处理&#xff0c;然后将num加1。很容易写出这样的代码&…

php 商品展示html,HTML5和CSS3实现3D展示商品信息的代码

这篇文章介绍的是关于html5商品展示导购特效是一款3D立体样式的商品信息&#xff0c;非常具有实用价值&#xff0c;需要的朋友可以参考下。强化下perspective和transform:translateZ的用法。传统的商品展示或许并不能很好的吸引用户的注意力&#xff0c;但是如果在展示中添加适…

asp.net程序涉及案例_定制小程序 | 企业在开发小程序前需要满足哪些条件?

目前深圳小程序开发行业发展愈发迅速&#xff0c;小程序开发已成为目前的潮流趋势&#xff0c;制作属于自己的小程序刻不容缓。那么在开发小程序前&#xff0c;企业需要满足什么条件呢&#xff1f;1、注册账号万纵联小编告诉你&#xff0c;要想开发小程序&#xff0c;申请账号是…

封神-核心功能 | 钉钉告警+数据网关

简介&#xff1a; 封神-核心功能 | 钉钉告警数据网关1. 开发背景 1.1 用户痛点 ①租户侧运维能力弱 问题&#xff1a;租户侧&#xff0c;客户没有有效途径&#xff0c;及时地获取实例级的状态、性能、容量的数据。 现状&#xff1a;每日固定时间&#xff0c;驻场需要人肉收集数…