从二维数组中计算某个字符串的出现频率

<?php

$array=array(
             array("name","word","hello","haha"),
             array("user","push","array","pop"),
             array("code","course","content","public"),
    );

#计算该数组中 o 出现的频率

$num=0;
// 1.常规解法 遍历 时间复杂度 m*n
// foreach ($array as $k => $v)
// {
//     foreach ($v as $val)
//     {
//         if(strpos($val,"o")!==false)
//         {
//             $num++;
//         }
//     }
// }

// 2.运用函数 减少循环 时间复杂度m
// foreach ($array as $k => $v)
// {
//     $string=implode("",$v);//数组变字符串
//     $num+= substr_count($string,‘o‘);//查找出现的次数并累加
// }

// 3.运用json 剔除循环 时间复杂度 1
// $string=json_encode($array);
// $num+= substr_count($string,‘o‘);

echo $num;

?>
时间: 2024-12-26 05:22:37

从二维数组中计算某个字符串的出现频率的相关文章

《剑指Offer 1.二维数组中的查找》2019-03-25

剑指Offer  第一题 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 本人简单的解题思路  就是通过二重循环,遍历.查找数组中是否有目标数字,思路是简单的,但是有个小坑 ,就是没有进行数组越界判断 少判断了  array = [ [ ] ] 这种情况,最终通过的代码为 public class Solution { public bool

如何从二维数组中的多个key中获取指定key的值?

精华 LOVEME96 2016-10-21 10:40:19 浏览(1512) 回答(3) 赞(0) 新手求教:二维数组中一般会有多个key,如果我们要获得指定key的值,应该怎么做? 问题标签: php 回答(3) TimberSwift 2016-10-21 第一种:最简单的方法: foreach遍历数组,代码: foreach ($arr as $key => $value) { $arr2[] = $value['name']; } 另一种方法:使用了array_map $arr2 =

【剑指offer】二维数组中的查找

题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 分析: 首先选择数组中右上角的数字.如果该数字等于要查找的数字,查找过程结束:如果该数字大于要查找的数字,剔除这个数字所在的列:如果该数字小于要查找的数字,剔除这个数字所在的行.依次类推,直到查找范围为空. 示例程序: #include <stdio.h> #include <stdlib.h> int

剑指offer系列——二维数组中,每行从左到右递增,每列从上到下递增,设计一个算法,找其中的一个数

题目:二维数组中,每行从左到右递增,每列从上到下递增,设计一个算法,找其中的一个数 分析: 二维数组这里把它看作一个矩形结构,如图所示: 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15 在做这道题的时候我最先考虑的是每次比较对角线上的元素可能可以取得较好的效果, 以查找9为例, 从1(0,0)开始,1<10,可以得出结论,10在1的右侧或下侧: 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15 然后看4(1,1),4<9, 1 2 8 9 2

面试题03_二维数组中查找_剑指offer系列

题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 解题思路: 这是一道考查二维数组的理解和编程能力的题. 在二维数组在内存中是连续存储的.在内存中从上到下存储各行元素,在同一行中按照从左到右存储. 因此可以按照行号和列号来计算出相对数组首部的位置. 由于每一行 和 每一列都是有序的,因此,我们可以拿要查找的数与数组的右上角的数进行比较. 因为每一行从左到右递增,每一列

C#版剑指Offer-001二维数组中的查找

题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数.例如:下面的二维数组就是每行.每列都递增排序.如果在这个数组中查找数字7,则返回true:如果查找数字5,由于数组不含有该数字,则返回false. 解题思路 看到该题目想到的最简单暴力做的做法就是直接遍历数组查找.但是实际上一般都要用效率更高的做法,该题目有两个重要条件,从左到右递增,从上到下递增

二维数组中的查找-牛客网-剑指offer

1.问题描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 2.问题分析 水平方向.垂直方向二重循环查找 3.源代码 package www.nowcoder.com.conquerOffer.array; /** * 二维数组中的查找 * 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整

面试题3 ----二维数组中的查找

题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 在剩下的两行两列4个数字中,位于右上角的刚好就是我们要查找的数字7,于是查找过程就可以结束了. 矩阵的加阴影背景的区域是下一步查找的范围.代码如下: bool Find(int* matrix,int  rows,int columns,int number) { bool found = false; if (matri

递增二维数组中的查找

/* * 二维数组从左到右,从上到下递增 * 查找输入的数,效率尽可能高 * 思路:从右上角或左下角开始查找 */ import java.util.Scanner; public class findTarget { public static boolean find(int [][]a,int rows,int cols,int target){ boolean found=false; int count=0;//移动次数 if(a!=null){ int row=0; int col=