首页 科技leetcode1897_go_重新分配字符使所有字符串都相等

leetcode1897_go_重新分配字符使所有字符串都相等

今日新闻 科技 2021-06-15 00:59:28 71 0

题目

给你一个字符串数组 words(下标 从 0 开始 计数)。

在一步操作中,需先选出两个 不同 下标 i 和 j,其中 words[i] 是一个非空字符串,

接着将 words[i] 中的 任一 字符移动到 words[j] 中的 任一 位置上。

如果执行任意步操作可以使 words 中的每个字符串都相等,返回 true ;否则,返回 false 。

示例 1:输入:words = ["abc","aabc","bc"] 输出:true

解释:将 words[1] 中的第一个 'a' 移动到 words[2] 的最前面。

使 words[1] = "abc" 且 words[2] = "abc" 。

所有字符串都等于 "abc" ,所以返回 true 。

示例 2:输入:words = ["ab","a"] 输出:false

解释:执行操作无法使所有字符串都相等。

提示:1 <= words.length <= 100

1 <= words[i].length <= 100

words[i] 由小写英文字母组成

解题思路分析

1、遍历;时间复杂度O(n),空间复杂度O(1)

leetcode1897_go_重新分配字符使所有字符串都相等

func makeEqual(words []string) bool {   arr := [26]int{}   n := len(words)   for i := 0; i < n; i++ {      for j := 0; j < len(words[i]); j++ {         arr[int(words[i][j]-'a')]++      }   }   for i := 0; i < 26; i++ {      if arr[i]%n != 0 {         return false      }   }   return true}

总结

Easy题目,注意审题,统计每个字符出现的次数即可,出现的次数是长度的倍数

相关阅读

版权声明

如喜欢本站,请您收藏、转发。
本站为可信网站请放心浏览。本站版权所有,如需转发,请注明出处