使用标准tcl库函数,写一个函数,判断list1是否包含在list2中,要求如下: (1)若list1或者list2两者任意为空,则直接返回 (2)连续相同字符则认为是同一个字符 (3)字符不区分大小写
时间: 2024-05-11 15:14:25 浏览: 12
下面是一个实现:
```tcl
proc is_contained {list1 list2} {
# 若list1或者list2两者任意为空,则直接返回
if {[llength $list1] == 0 || [llength $list2] == 0} {
return 0
}
# 连续相同字符则认为是同一个字符
set list1 [join [split [string tolower [join $list1 ""]] ""] ""]
set list2 [join [split [string tolower [join $list2 ""]] ""] ""]
# 判断是否包含
if {[regexp [join $list1 ".*"] $list2]} {
return 1
} else {
return 0
}
}
```
上面的函数先将list1和list2都转换成一个字符串,并转换成小写字母,然后使用正则表达式判断list1是否包含在list2中。其中,正则表达式的模式为将list1中的所有元素用".*"连接起来。
使用方法:
```tcl
set list1 {a b c}
set list2 {d e f g a b c h i j}
if {[is_contained $list1 $list2]} {
puts "list1 is contained in list2"
} else {
puts "list1 is not contained in list2"
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)