# Task 7: Matches a word containing 'z' Write a Python program that matches a word containing 'z', not at the start or end of the word. Sample data : "The quick brown fox jumps over the lazy dog." "Python Exercises." Expected Output : Found a match! Not matched!
时间: 2024-01-10 22:03:07 浏览: 64
Here is a Python program that matches a word containing 'z', not at the start or end of the word:
```python
import re
# Sample data
text1 = "The quick brown fox jumps over the lazy dog."
text2 = "Python Exercises."
# Define the regular expression pattern
pattern = r'\b\w*z\w*\b'
# Test the regular expression on the sample data
match1 = re.search(pattern, text1)
match2 = re.search(pattern, text2)
# Print the output based on the match result
if match1:
print("Found a match!")
else:
print("Not matched!")
if match2:
print("Found a match!")
else:
print("Not matched!")
```
Output:
```
Found a match!
Not matched!
```
相关问题
# Task 7: Matches a word containing 'z' Write a Python program that matches a word containing 'z', not at the start or end of the word. Sample data : "The quick brown fox jumps over the lazy dog." "Python Exercises." Expected Output : Found a match!
Here's a Python program that matches a word containing 'z', not at the start or end of the word:
```python
import re
text1 = "The quick brown fox jumps over the lazy dog."
text2 = "Python Exercises."
pattern = r'\b\w+z\w+\b'
if re.search(pattern, text1) or re.search(pattern, text2):
print("Found a match!")
else:
print("No match found.")
```
Output:
```
Found a match!
```
Explanation:
- We use the `re` module to work with regular expressions in Python.
- The pattern `r'\b\w+z\w+\b'` matches a word boundary (`\b`), followed by one or more word characters (`\w+`), followed by the letter 'z', followed by one or more word characters again (`\w+`), and finally another word boundary (`\b`).
- If the pattern is found in either `text1` or `text2`, we print "Found a match!". Otherwise, we print "No match found."
You are given a map of a building made up of n×m squares, and each square is either a floor or a wall. Find how many rooms are in the building. A room is defined by a group of any number of adjacently connected floor squares, that is surrounded by walls. Input The first input line has two integers n and m: the height and width of the map. Then there are n lines each containing m characters describing the map. Each character is either . (floor) or # (wall). Output Print one integer, the number of rooms. Constraints 1≤n,m≤1000 Sample Input: 5 8 ######## #..#...# ####.#.# #..#...# ######## Output: 3
Sure! Here's a C++ code implementation that solves the problem:
cpp
#include <iostream>
#include <vector>
using namespace std;
int n, m;
vector<vector<char>> building;
vector<vector<bool>> visited;
// Define possible movements: up, down, left, right
int dx[] = {-1, 1, 0, 0};
int dy[] = {0, 0, -1, 1};
// Function to perform DFS to find rooms
void explore(int x, int y) {
visited[x][y] = true;
// Explore all possible neighboring cells
for (int i = 0; i < 4; i++) {
int nx = x + dx[i];
int ny = y + dy[i];
// Check if neighboring cell is within bounds and unvisited
if (nx >= 0 && nx < n && ny >= 0 && ny < m && building[nx][ny] == '.' && !visited[nx][ny]) {
explore(nx, ny);
}
}
}
int countRooms() {
int roomCount = 0;
// Initialize visited matrix
visited.assign(n, vector<bool>(m, false));
// Traverse through the building and count rooms
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (building[i][j] == '.' && !visited[i][j]) {
roomCount++;
explore(i, j);
}
}
}
return roomCount;
}
int main() {
cin >> n >> m;
// Read the building map
building.assign(n, vector<char>(m));
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> building[i][j];
}
}
int roomCount = countRooms();
cout << roomCount << endl;
return 0;
}
```
You can compile and run this code to get the desired output. Let me know if you have any further questions!