Участник:UlitinAleksander/can-convert-string-in-k-moves — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
(Новая страница: «python3 https://leetcode.com/problems/can-convert-string-in-k-moves/ <code-python> import collections class Solution: def canConvertString(self, s: str, t:…»)
 
 
Строка 7: Строка 7:
 
class Solution:
 
class Solution:
 
     def canConvertString(self, s: str, t: str, k: int) -> bool:
 
     def canConvertString(self, s: str, t: str, k: int) -> bool:
        # check lengths
+
 
 
         n1 = len(s)
 
         n1 = len(s)
 
         n2 = len(t)
 
         n2 = len(t)
Строка 14: Строка 14:
 
         n = n1
 
         n = n1
 
          
 
          
        # find diffArray
+
 
 
         diffArray = [(ord(t[i])-ord(s[i]))%26 for i in range(n)]
 
         diffArray = [(ord(t[i])-ord(s[i]))%26 for i in range(n)]
 
        
 
        
        # frequency of difference
+
 
 
         cda = collections.Counter(diffArray)
 
         cda = collections.Counter(diffArray)
 
          
 
          
        # delete 0
+
 
 
         del cda[0]
 
         del cda[0]
 
          
 
          

Текущая версия на 20:47, 20 декабря 2020

python3

https://leetcode.com/problems/can-convert-string-in-k-moves/

import collections
class Solution:
    def canConvertString(self, s: str, t: str, k: int) -> bool:
 
        n1 = len(s)
        n2 = len(t)
        if n1 != n2:
            return False
        n = n1
 
 
        diffArray = [(ord(t[i])-ord(s[i]))%26 for i in range(n)]
 
 
        cda = collections.Counter(diffArray)
 
 
        del cda[0]
 
        minK = 0
        if len(cda) > 0 :
            key = max([(i[1], i[0])for i in cda.items()])
            minK = (key[0] - 1) *26 + key[1]
 
        return k >= minK