zoukankan      html  css  js  c++  java
  • 567. Permutation in String

    package LeetCode_567
    
    /**
     * 567. Permutation in String
     * https://leetcode.com/problems/permutation-in-string/description/
     *
     * Given two strings s1 and s2, write a function to return true if s2 contains the permutation of s1.
     * In other words, one of the first string's permutations is the substring of the second string.
    
    Example 1:
    Input: s1 = "ab" s2 = "eidbaooo"
    Output: True
    Explanation: s2 contains one permutation of s1 ("ba").
     * */
    class Solution {
        /*
        * Solution: Sliding Window + Array;
        * Array save the frequency of each latter of s1, and keep tracking s2 to calculate the frequency of  each latter of s2;
        * Time complexity:O(l1+l2), Space complexity:O(1)
        * */
        fun checkInclusion(s1: String, s2: String): Boolean {
            val s1Array = IntArray(26)
            val s2Array = IntArray(26)
            for (c in s1) {
                s1Array[c - 'a']++
            }
            val s1Length = s1.length
            for (i in s2.indices) {
                //when i larger than s1Length, keep tracking to compare with remove the first latter
                if (i - s1Length >= 0) {
                    s2Array[s2[i - s1Length] - 'a']--
                }
                s2Array[s2[i] - 'a']++
                if (s1Array contentEquals s2Array) {
                    return true
                }
            }
            return false
        }
    }
  • 相关阅读:
    BluetoothGetRadioInfo 函数
    BluetoothFindRadioClose 函数
    BluetoothFindNextRadio 函数
    BluetoothFindFirstRadio 函数
    BLUETOOTH_DEVICE_INFO 函数
    BluetoothSetServiceState 函数
    Bluetooth Functions
    union联合体学习
    置顶
    Toppo: 1
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/13443487.html
Copyright © 2011-2022 走看看