1684. 统计一致字符串的数目

1684. 统计一致字符串的数目_第1张图片

Tochararray

ToCharArray( )的用法,将字符串对象中的字符转换为一个字符数组。

详解释就是:

字符串转换成字符数组后,每个字符的ASC码与字符T的ASC码进行二进制异或运算。

最后把结果转换回字符。

举例说明:

public class Test {

public static void main(String args[]) {

String Str = new String(“www.baidu.com”);
System.out.print(“返回值 :” );

System.out.println( Str.toCharArray() );
}

}

以上程序执行结果为:

返回值 :www.baidu.com
ToCharArray( )其他举例说明

String myString=“abcd”;

char myChar[]=myString.toCharArray();

System.out.println(“myChar[1]=”+myChar[1]);

输出结果:

myChar[1]=b

解释:

该字符串中共有有a,b,c,d四个字符。

转化为数组元素myChar[1]是数组的第二个元素。

即myChar[1]=b。

转自:https://blog.csdn.net/qq_43668119/article/details/85228156?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522161288659516780265433493%252522%25252C%252522scm%252522%25253A%25252220140713.130102334.pc%25255Fall.%252522%25257D&request_id=161288659516780265433493&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-1-85228156.pc_search_result_cache&utm_term=tochararray

思路:遍历words将其中的字符串组转换成字符数组在遍历字符数组如果有在allowed里的就让计数加一

class Solution {
     
    public int countConsistentStrings(String allowed, String[] words) {
     
        int result = 0;
        //使用一个数组记录allowed 包含的字符,数组定位,效率较高
        int[] allow = new int[26];
        char[] chars = allowed.toCharArray();
        for (char aChar : chars) {
     
            allow[aChar - 'a'] = 1;
        }
        for (String word : words) {
     
            char[] arr = word.toCharArray();
            int index = 0;
            int length = arr.length;
            for (; index < length; index++) {
     
                //如果这个字符没有在allowed 中,直接结束
                if (allow[arr[index] - 'a'] == 0) {
     
                    break;
                }
            }
            //如果相等说明这个字符有判断到最后,结果加1
            if (index == length) {
     
                result++;
            }
        }
        return result;
    }
}

这是某大佬写的,目前还达不到这种程度能看个大概,把细节扣一扣

但我感觉python 会简单易想很多

class Solution(object):
    def countConsistentStrings(self, allowed, words):
        """
        :type allowed: str
        :type words: List[str]
        :rtype: int
        """
        count=len(words)
        for i in words:
            for j in i:
                if j not in allowed:
                    count-=1          
                    break

        return count

相对来说简单了很多,也比较容易想。

你可能感兴趣的:(力扣,python,java)