| Programmieraufgaben Hier wird regelmäßig eine neue Programmieraufgabe gestellt, die dann gelöst werden soll und in Zusammenarbeit mit den Moderatoren auch besprochen werden kann. |
Diskussion: "wer mag wen" - arbeiten mit Strings im Forum Programmieraufgaben, in der Kategorie Code Kitchen; Anzeige Eingereicht von Ook!: Zitat: 1.) Wer mag wen?! - Schwierigkeit 1 Jim likes Larry and Jean, but hates Kim. ...
![]() |
| | #1 (permalink) | |
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | Anzeige Eingereicht von Ook!: Zitat:
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. | |
| | |
| | #2 (permalink) |
| Registriert seit: 16.05.06 ![]() Likes: 0 | Also genau für sowas wurde z.B. Prolog geschrieben. Da spielt auch Stark Graphentheorie mit rein. Also Ziel ist es einen Parser zu schreiben, der das Wissen hat, dass die Prädikate(likes/hates) immer als Subjekt-Prädikat-Objekt stehen. Und dann nurnoch Stringschnippelei. Ist also nicht sooooooo schwer. |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Registriert seit: 11.09.05 ![]() Likes: 0 | Nicht schön aber selten: Code: #!/usr/bin/env python
# -*- coding: utf-8 -*-
import re
text = """Jim likes Larry and Jean, but hates Kim.
Bob loves Jean, and likes Larry and Kim.
Jean loves Bob, likes Jim, but hates Kim.
Kim hates Jim, likes Larry and Bob.
Larry loves Martin, and hates Karl and Jean."""
reg_exps = {}
for verb in ("loves", "hates", "likes"):
reg_exps[verb] = re.compile("%s ([a-zA-Z]*)( and [a-zA-Z]*)*" % verb)
for line in text.split("\n"):
person = line.split(" ")[0]
print person
for verb in reg_exps.keys():
persons = reg_exps[verb].findall(line)
print " ", verb,
try:
print [p.replace(" and ", "") for p in persons[0] if p]
except IndexError:
print "nobody" |
| | |
| | #4 (permalink) |
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | @01: wenn Du da Graphentheorie brauchst, machst Du irgendwas falsch Das ist wirklich NUR String splitten/verarbeiten.
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. |
| | |
| | #5 (permalink) |
| Registriert seit: 16.05.06 ![]() Likes: 0 | Dachte eher an eine Exportfkt für DOT also Graphviz. Sry hatte verpeilt das das als Competition gedacht war |
| | |
| | #6 (permalink) | |
| Registriert seit: 12.01.07 ![]() Likes: 0 | Zitat:
z.B. ich mag Bob, bob mag Alice also mag ich auch Alice. | |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| regulären Ausdruck für (lange) Strings | blueflash | Code Kitchen | 13 | 30.01.09 17:57 |
| strings nur teilweise anzeigen lassen | Executor | (Web-) Design und webbasierte Sprachen | 6 | 21.07.08 21:54 |
| Verschlüsselung von Strings | pLaYbOy | Cryptography & Encryption | 0 | 15.05.05 18:35 |
| Batch Programmierung - Verarbeiten von Strings | inter.faiz | Code Kitchen | 1 | 18.03.04 10:59 |
| [C/C++]switch und strings | soox | Code Kitchen | 3 | 24.12.03 15:28 |