首页 > 其他分享 >差值数组不同的字符串

差值数组不同的字符串

时间:2023-08-16 20:22:56浏览次数:37  
标签:数组 int 整数 差值 words 字符串

给你一个字符串数组 words ,每一个字符串长度都相同,令所有字符串的长度都为 n 。

每个字符串 words[i] 可以被转化为一个长度为 n - 1 的 差值整数数组 difference[i] ,其中对于 0 <= j <= n - 2 有 difference[i][j] = words[i][j+1] - words[i][j] 。注意两个字母的差值定义为它们在字母表中 位置 之差,也就是说 'a' 的位置是 0 ,'b' 的位置是 1 ,'z' 的位置是 25 。

比方说,字符串 "acb" 的差值整数数组是 [2 - 0, 1 - 2] = [2, -1] 。
words 中所有字符串 除了一个字符串以外 ,其他字符串的差值整数数组都相同。你需要找到那个不同的字符串。

请你返回 words中 差值整数数组 不同的字符串。

示例 1:

输入:words = ["adc","wzy","abc"]
输出:"abc"
解释:

  • "adc" 的差值整数数组是 [3 - 0, 2 - 3] = [3, -1] 。
  • "wzy" 的差值整数数组是 [25 - 22, 24 - 25]= [3, -1] 。
  • "abc" 的差值整数数组是 [1 - 0, 2 - 1] = [1, 1] 。
    不同的数组是 [1, 1],所以返回对应的字符串,"abc"。
    示例 2:

输入:words = ["aaa","bob","ccc","ddd"]
输出:"bob"
解释:除了 "bob" 的差值整数数组是 [13, -13] 以外,其他字符串的差值整数数组都是 [0, 0] 。

计算差值找不同

class Solution {
    public String oddString(String[] words) {
        int[] diff0 = get(words[0]);
        int[] diff1 = get(words[1]);
        //找到不同的差值元素
        if (Arrays.equals(diff0, diff1)) {
            for (int i = 2; i < words.length; i++) {
                if (!Arrays.equals(diff0, get(words[i]))) {
                    return words[i];
                }
            }
        }
        return Arrays.equals(diff0, get(words[2])) ? words[1] : words[0];
    }
    //计算前后差值
    public int[] get(String word) {
        int[] diff = new int[word.length() - 1];
        for (int i = 0; i + 1 < word.length(); i++) {
            diff[i] = word.charAt(i + 1) - word.charAt(i);
        }
        return diff;
    }
}

标签:数组,int,整数,差值,words,字符串
From: https://www.cnblogs.com/xiaochaofang/p/17636098.html

相关文章

  • 带密匙的字符串加密解密函数(支持中文)
    usesAnsiStrings; FunctionJiaMi(Src:String;Key:String):String; var  KeyLen:Integer;  KeyPos:Integer;  offset:Integer;  dest:String;  SrcPos:Integer;  SrcAsc:Integer;  Range:Integer;  IntTemp:integer; ......
  • day08-字符串part01
    344. 反转字符串详解classSolution{public:voidreverseString(vector<char>&s){intleft=0;intright=s.size()-1;while(left<=right){//chartmp=s[left];//s[left]=s[right];......
  • 稀疏数组
    稀疏数组条件-需求:编写五子棋游戏中,有存盘退出和续上盘的功能-分析:因为该二维数组的很多值是默认值0,因此记录了很多没有意义的数据-解决:稀疏数组稀疏数组介绍-当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组-稀疏数组的处......
  • php 字符串进行加*处理
    /$string是字符串$start从第几个开始加*$end从结尾第几个开始*publicfunctionstrReplace($string,$start,$end){$strlen=mb_strlen($string,'UTF-8');//获取字符串长度$firstStr=mb_substr($string,0,$start,'UTF-8');//获取第一位$l......
  • python中自定义类对象json字符串化的方法
    1.用json或者simplejson就可以2.定义转换函数:defconvert_to_builtin_type(obj):print'default(',repr(obj),')'#把MyObj对象转换成dict类型的对象d={}d.update(obj.__dict__)returnd 3.定义类classObject():name=""size=0def__init__(......
  • 数组使用
    数组使用For-Each循环数组做方法入参数组做返回值publicclassDemo{//打印数组元素publicstaticvoidprintArray(int[]arrays){for(inti=0;i<arrays.length;i++){System.out.println(arrays[i]+"");}}//......
  • 判断文件是否是XML格式以及判断字符串是否是XML格式
    首先截取文件后缀名。后缀是XML文件再进入此判断,避免不必要的资源占用。/***判断一个文件是否是XML文件**@paramfile*@return*/privatestaticbooleanisXmlDocument(Filefile){booleanflag;try{DocumentBuilderFactoryfactory=Docume......
  • 数组的四个基本特点
    数组的四个基本特点-数组长度是确定的,数组一旦被创建,它的大小就是不可改变-其元素必须是相同类型,不允许出现混合类型-数组中的元素可以是任何数据类型,包括基本类型和引用类型-数组变量属引用类型,数组也可以看成对象,数组中的每个元素相当于该对象的成员变量-数......
  • python编程从入门到实践(第2版)学习笔记(变量,字符串)
    变量变量是一种可以赋给值的标签。每一个变量都指向一个相关联的值,下列代码中message即为变量,指向的值为“HelloPythonworld!”message="HelloPythonworld!"print(message)第二行的print()函数用于打印输出这个message变量所关联的值。且变量的值是可以修改的,p......
  • 字符串函数剖析(3)---strstr函数
    1.strstr函数的巧妙--查找子字符串1.1模拟实现strstr函数strstr函数:在一个字符串中查找子串学习新函数时,先去c库查找该函数的相关资料,更加助于你的学习constchar*strstr(constchar*str1,constchar*str2);先看函数的声明,参数是两个地址,不可更改。先看看strstr函数......