判断两个字符串是否为互为变形词

题目描述:

给定两个字符串str1和str2,如果str1和str2中出现的字符种类一样且每种字符出现的次数也一样,那么str1与str2互为变形词。请实现函数判断两个字符串是否互为变形词。

举例:

str1=“123” ,str2=“231”,返回true

str1=“123” ,str2=“2331”,返回false

这个题目不难,考察代码实现能力

首先判断长度

然后 利用字符编码 最大255 申请一个整型数组map(初始化为0哈)

然后 遍历字符串str1 遍历到 就在相应的 字符编码位置 +1

然后 遍历字符串str2 遍历到的就-1 如果减少之后发现小于0 了 直接返回false

如果遍历完str2 没有出现负值 则返回true

public class Solution {
    public boolean isDeformation(String s1,String s2) {
        if (s1==null||s2==null||s1.length()!=s2.length()) {
            return false;
        }
        char[] ch1=s1.toCharArray();
        char[] ch2=s2.toCharArray();
        int[] num=new int[256];
        for (int i=0; i<ch1.length; i++) {
            num[ch1[i]]++;
        }
        for (int i=0; i<ch2.length; i++) {
            num[ch2[i]]--;
            if (num[ch2[i]]<0) {
                return false;
            }
        }
        return true;
    }
    public static void main(String[] args) {
        Solution s=new Solution();
        boolean re=s.isDeformation("123","2331");
        System.out.println(re);
    }
}

给TA打赏
共{{data.count}}人
人已打赏
Java算法

设计一个有getMin功能的栈

2022-8-22 23:31:01

Java算法

字符串中数字子串的求和

2022-8-28 21:43:25

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索