English 中文(简体)
裁定在扼杀中未使用的所有信件
原标题:Find all letters not used in a string
  • 时间:2012-04-30 23:19:26
  •  标签:
  • php
  • string

我想能够做这样的事情:

$str="abc";
echo findNot($str); //will echo "defghijklomnopqrstuvwxyz"
$str2="happy birthday";
echo findNot($str2); //will echo "cfgjklmnoqsuvwxz"

基本上,它会发现,在扼杀中没有任何代表的所有信件,并将它们送回一阵或护栏。

我可以很容易地通过<条码>(foreach)和一系列特性来做到这一点,但我很想知道,谁能找到一个更可取的解决办法。

最佳回答

这里是我来的。

function findNot($str){
    return array_diff(range( a , z ), array_unique(str_split(strtolower($str))));
}
问题回答

如何做到这一点

$str="abc";
var_dump(findNot($str));

function findNot($string)
{
    $letters = range( a ,  z );
    $presents = array_map(function($i) { return chr($i); }, array_keys(array_filter(count_chars($string))));

    return array_diff($letters, $presents);
}

PS:implode 如果你需要一系列的果园,而不是阵列,则结果

PPS: 不能确定它是一个“更合法”的解决办法:-

PPPS:另一种解决办法 我可以认为:

$str="abc";
var_dump(findNot($str));

function findNot($string)
{
    $letters = range( a ,  z );
    $presents = str_split(count_chars($string, 4));
    return array_intersect($letters, $presents);
}

你可以这样做:

$text =  abcdefghijklmnop ;
$search = array( a , b , c );

$result = str_replace($search,   , $text);

泽尔河解决办法是冰。 我举出这个类似的例子,不是说是代表。

<?php

$alphabet =  abcdefghijklmnopqrstuvwxyz ;
$alphabet = preg_split( // , $alphabet, -1, PREG_SPLIT_NO_EMPTY);

$str="abc";
var_dump( findNot($str) ); //will echo "defghijklomnopqrstuvwxyz"
$str2="happy birthday";
var_dump( findNot($str2) ); //will echo "cfgjklmnoqsuvwxz"

function findNot($str)
{
    global $alphabet;

    $str   = str_replace(   ,   , $str);
    $chars = preg_split( // , $str, -1, PREG_SPLIT_NO_EMPTY);
    $chars = array_unique($chars);
    sort($chars);

    $diff = array_diff($alphabet, $chars);

    return $diff;
}




相关问题
Simple JAVA: Password Verifier problem

I have a simple problem that says: A password for xyz corporation is supposed to be 6 characters long and made up of a combination of letters and digits. Write a program fragment to read in a string ...

Case insensitive comparison of strings in shell script

The == operator is used to compare two strings in shell script. However, I want to compare two strings ignoring case, how can it be done? Is there any standard command for this?

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

String initialization with pair of iterators

I m trying to initialize string with iterators and something like this works: ifstream fin("tmp.txt"); istream_iterator<char> in_i(fin), eos; //here eos is 1 over the end string s(in_i, ...

break a string in parts

I have a string "pc1|pc2|pc3|" I want to get each word on different line like: pc1 pc2 pc3 I need to do this in C#... any suggestions??

Quick padding of a string in Delphi

I was trying to speed up a certain routine in an application, and my profiler, AQTime, identified one method in particular as a bottleneck. The method has been with us for years, and is part of a "...

热门标签