<?php
$str = "あいうえおabcdefg";
function isUniqueString($str)
{
$count = mb_strlen(trim($str), "UTF-8");
$strArray = [];
for($i=0; $i<$count; $i++) {
$strArray[] = mb_substr($str, $i, 1, "UTF-8");
}
$uniqueFlags = array();
for($i=0; $i<$count; $i++) {
$val = $strArray[$i];
if(array_key_exists($val, $uniqueFlags) && $uniqueFlags[$val] === true) {
return false;
}
$uniqueFlags[$val] = true;
}
return true;
}
var_dump(isUniqueString($str));
var str = "あいうえおabcdefg";
function isUniqueString(str) {
str = str.trim();
var strs = str.split('');
var i, uniqueFlags = [];
for(i=0; i<str.length; i++) {
var val = strs[i];
if(val in uniqueFlags && uniqueFlags[val] == true) {
return false;
}
uniqueFlags[val] = true;
}
return true;
}
console.log(isUniqueString(str));
str = 'あいうえおabcdefg'
def is_unique_string(str)
strs = str.strip.split("")
is_unique_flags = {}
for str in strs do
if is_unique_flags.has_key?(str) && is_unique_flags[str] == true
return false
end
is_unique_flags[str] = true
end
return true
end
puts is_unique_string(str)
str = u'あいうえおabcdefg'
def is_unique_string(str):
u"""指定した文字列に重複文字があるか判定する関数
Keyword arguments:
str -- string
"""
str = str.strip()
unique_flags = {}
for i in range(0, len(str)):
val = str[i]
if val in unique_flags and unique_flags[val] == True:
return False
unique_flags[val] = True
return True
if __name__ == "__main__":
print is_unique_string(str)
Go
package main
import "fmt"
const str string = "あいうえおabcdefg"
func IsUniqueString(str string) bool {
>-uniqueFlags := make(map[string]bool)
>-for _, c := range str {
>->-var val = string([]rune{c})
>->-var _, ok = uniqueFlags[val]
>->-if ok == true && uniqueFlags[val] == true {
>->->-return false
>->-}
>->-uniqueFlags[val] = true
>-}
>-return true
}
func main() {
>-
>-fmt.Println(IsUniqueString(str))
}
Elixir
#
# 指定した文字列に重複があるかどうか判定する
#
defmodule IsUniqueString do
def main(str) do
length = String.length(str)
status = loop_string(str, length, 0)
if status == nil do
IO.puts true
else
IO.puts false
end
end
def loop_string(str, length, pos) do
if 0 <= pos && pos < length do
val = String.at(str, pos)
status = check_unique(val, str, length, pos+1)
if status == false do
false
else
loop_string(str, length, pos+1)
end
end
end
def check_unique(val, str, length, pos) do
if 0 <= pos && pos < length do
if val == String.at(str, pos) do
false
else
check_unique(val, str, length, pos+1)
end
end
end
end
str = "あいうえおabcdefg"
IsUniqueString.main(str)